小程序npm支持的改进版。
开发者工具自带的【构建 npm】不支持tree-shaking
, 拿[email protected]
为例,v3.6.0
的redux
引入了lodash/isPlainObject
, 结果构建npm后整个lodash
都被构建进了miniprogram_npm
。此库就是为了解决此问题。
$ yarn add miniprogram-build-npm -D
{
"scripts": {
"build-npm": "miniprogram-build-npm"
}
}
$ npm run build-npm
Type: string
Default: miniprogram_npm
构建输出路径
$ miniprogram-build-npm --output libs
Type: cjs | esm
Default: cjs
输出模块格式:
cjs
- CommonJSesm
- ES, 使用此格式可以配合【ES6转ES5】使用
具体输出格式需要看引入的包支持不支持相关格式,如果包本身发布时只发布了es5
的格式,那么即使指定esm
也无效,会原样打包
miniprogram-build-npm --format esm
Type: boolean
Default: false
开启sourcemap
miniprogram-build-npm --sourcemap
Type: object
Default: {}
miniprogram-build-npm --replace process.env.NODE_ENV=production --replace foo=bar
除了作为命令行使用,还可以使用api调用
const build = require('miniprogram-build-npm');
build({
output: 'libs',
format: 'esm',
sourcemap: false,
replace: {
'process.env.NODE_ENV': JSON.stringify('ENV'),
}
});