Skip to content

littleprincewdk/miniprogram-build-npm

Repository files navigation

miniprogram-build-npm

小程序npm支持的改进版。

Why?

开发者工具自带的【构建 npm】不支持tree-shaking, 拿[email protected]为例,v3.6.0redux引入了lodash/isPlainObject, 结果构建npm后整个lodash都被构建进了miniprogram_npm。此库就是为了解决此问题。

Usage

$ yarn add miniprogram-build-npm -D
{
  "scripts": {
    "build-npm": "miniprogram-build-npm"
  }
}
$ npm run build-npm

Options

--output/-o

Type: string Default: miniprogram_npm

构建输出路径

$ miniprogram-build-npm --output libs

--format/-f

Type: cjs | esm Default: cjs

输出模块格式:

  • cjs - CommonJS
  • esm - ES, 使用此格式可以配合【ES6转ES5】使用

具体输出格式需要看引入的包支持不支持相关格式,如果包本身发布时只发布了es5的格式,那么即使指定esm也无效,会原样打包

miniprogram-build-npm --format esm

--sourcemap/-s

Type: boolean Default: false

开启sourcemap

miniprogram-build-npm --sourcemap

--replace/-r

Type: object Default: {}

see @rollup/plugin-replace

miniprogram-build-npm --replace process.env.NODE_ENV=production --replace foo=bar

API

除了作为命令行使用,还可以使用api调用

const build = require('miniprogram-build-npm');

build({
  output: 'libs',
  format: 'esm',
  sourcemap: false,
  replace: {
    'process.env.NODE_ENV': JSON.stringify('ENV'),
  }
});