Have ideas to improve npm?Join in the discussion! »

    @manpacker/generator

    1.10.0 • Public • Published

    npm npm bundle size npm NPM

    nodei.co

    Explain

    Manpacker is a set of build engine based on webpack to build engine package.
    Entry file supported file extension js or ts
    Support for multi-portal file build, Files must be in the build root directory.

    .manpackeric

    Project default initialization file, Can be a javascript script file, or a json configuration file.
    Example: json

    {"output": "view"}
    

    You can also set the manpacker field in the package.json file.
    Example:

    {"manpacker": {"root": "src"}}
    

    Final input result, Merge .manpackeric config item.

    {"root": "src", "output": "view"}
    

    You can customize the project initialization file name.
    Example:
    Custom name: development.ic.js

    npx manpacker --ci development.ic.js
    
    manpacker --ci development.ic.js
    

    Install

    npm i @manpacker/generator -D
    

    Usage

    CLI

    Start the local development environment.

    manpacker server
    
    manpacker server --ic [value] -c [config] --port [number]
    

    Construction of production environment engineering project.

    manpacker build
    
    manpacker build --ic [value] -c [config]
    

    API

    const manpacker = require('@manpacker/generator')
    

    method

    .compile

    Core compilation method

    const { compile } = require('@manpacker/generator')
    compile({ env, ic, config })
    
    param type explain
    env string env: NDOE_ENV variabl
    ic object .manpackeric config item object
    config function manpacker.webpack.js return funtion

    .Commander

    Commander is Create command-line class.

    const { Commander } = require('@manpacker/generator')
    
    let { version } = require('./package.json')
    let commander = new Commander({ version })
    
    

    Explain commander methods

    method explain
    build Default build production environment, enter project directory
    server Launch Development Environment, Local Interconnect Service, default Port 8090
    parse Compile registration command Lint

    .createCssLoader

    Create css loader generator.

    const { createCssLoader } = require('@manpacker/generator')
    
    param type explain
    ic object code>.manpackeric config item object
    ...loader [object,string] style loader

    Example:

    createCssLoader(ic, { loader: 'resolve-url-loader' }, { loader: 'sass-loader' })
    
    createCssLoader(ic, 'resolve-url-loader', 'sass-loader')
    

    .createURILoader

    Create URI file loader generator.

    param teype explain
    dir string create new dir for URI file.

    .createEslintLoader

    Create Eslint loader generator.

    param teype explain
    rgx RegExp Create eslint loader.

    .manpackeric

    Default root file name: .manpackeric
    Configuration item description:

    name type value description
    root string default: src Source directory for building the project
    output string default: view Directory output after build
    ext string default:htm Extension of the outputted page
    cdn string default: "/" Domain name for static Resource, "publicPath" attribute value
    define object dedalut: {NODE_ENV: process.env.NODE_ENV} Define constants in a project, eslintrc set global key-value
    pages object default: {} Multi-portal file page configuration Example
    remUnit number default: 100 Conversion of px with 750px Design Diagram, Minimum cardinality.
    isPx2rem boolean default:true Pixel unit px conversion rem
    injectStyle array default:[] Global style files that need to be injected, Avoid repeating reference, Example
    isCssExtract boolean default: fasle Extract css separate files
    isMergeCommon boolean default:false When multiple portal files are used, the common code section is extracted
    minChunks number default: 2 If isMergeCommon:true, Extracts the minimum entry file number of files for the public code.
    isCssModule boolean default:false Whether styles are introduced as css templates, Example
    isMiniHTML boolean default:true Compressed page.
    template string default:'template.html' Build-time template file.
    map string default: ' ' Source map file URI
    isEslint boolean default: true Start the eslint-loader feature by default
    isZip boolean default: false Compressed project are zip’s ext.
    proxy object default: {} Resolve browser request interface joint cross-domain.

    .pages

    Ingress File header Settin. Example: Entry files index.js

    {"page": {"index": "Test title"}}
    

    More entry files index.tslist.ts, and so on.

    {"pages": {"index": "Test title", "list": "List test title"}}
    

    .injectStyle

    Inject global style file, Avoid manual introduction
    Example:

    {"injectStyle": ["./common/style/mixins.scss", "./common/style/varable.scss"]}
    
    {"injectStyle": ["./common/style/index.scss"]}
    

    .isCssModule

    Introduction of css style to work with Modular approach.
    Example:
    index.scss

    .frame {margin: auto;}
    

    index.jsx

    import Style from './index.scss'
    
    <div class={Style.frame}></div>
    

    .proxy

    {
      '/api': {
        'target': 'https://maindomain.com',
        'changeOrigin': true,
        'secure': true,
        'pathRewrite': {
          '^/api': ''
        },
        'logLevel': 'debug'
      }
    }
    
    API: http://localhost:8090/api/home => https://maindomain.com/home
    

    postcss.config.js

    Specific reference: postcss

    This generator includes plugins: postcss-preset-env postcss-import postcss-url cssnano
    Extend the postcss plug-in the root directory: create file postcss.config.js

    manpacker.webpack.js

    Default root file name: manpacker.webpack.js

    module.exports = ic => {
      // webpack config item.
      return {}
    }
    

    The parameter ic is the injected initialization parameter object.
    Webpack configuration items can be set based on ic

    Npm

    link

    Install

    npm i @manpacker/generator

    DownloadsWeekly Downloads

    26

    Version

    1.10.0

    License

    MIT

    Unpacked Size

    78 kB

    Total Files

    25

    Last publish

    Collaborators

    • avatar