mutiple-platform
v2.3.12
Published
Generate mutiple webpack config base on platform
Downloads
6
Readme
mutiple-platform
差异化构建包 support node 8+
针对 rax 技术栈,支持差异化构建 node、rax-weex、rax-web、react 四种包。
原理
使用方式
const resultConfig = MultiplePlatform(baseWebpackConfig, {
// 需要打出的平台包,该设置产出 index.web.js & index.weex.js
platforms: ['web', 'weex', 'react'],
// 当对模块进行打包时需传入当前模块的 package.json 内容,否则不传入该字段
pkgJson: pkgJson,
// 需要主动 external 的包
// allowNodeModules:是否对node_modules依赖使用,对于不了解的外部依赖可能有风险
// platforms 在对应平台external的引用方式,需完全匹配。
externals: { allowNodeModules: false, platforms: { web: ['./native'], weex: ['./web'] } },
// 差异化打包基准库
name: ['nuke-env', 'universal-env', '@ali/universal-env'],
// 打包产物格式化命名
chunkFilename(platformType) {
return `[name].${platformType}.js`;
}
});
baseWebpackConfig
是基础的 webpack 配置,开发者可配置打包入口、loader 等内容。
注意
mutiple-platform
已经内置了rax-webpack-plugin
无需配置,具体配置参考 example。对于构建
react
形式包,mutiple-platform
内置了 babel-plugin-transform-rax2react 代码进行转义,并在入口增加 babel-rax2react-polyfill。