针对多个用户打包为多个文件?
可以用 webpack 的 extensions 处理,类似 react-native 项目,文件有不同的打包后缀. xxx.ios.js xxx.android.js 之类的, 可以自定一下,已 react 项目为例
————————
1. package.json 里加入环境变量与打包配置
```
"build:WHAT_YOU_WANTA": "cross-env USER_ENV=WHAT_YOU_WANTA node scripts/build.js",
```
2. 在`webpack` 下 resolve/extensions 下动态由环境变量加入配置
https://webpack.js.org/configuration/resolve/#resolveextensions如,我现在用的项目是基于 create-react-app 的,extensions 在`config/paths.js` 下,所以我添加了对应配置为
```js
const dynamicMap = {
user1: ['user1.js','user1.web.js','user1.tsx']
user2: ['user2.js','user2.web.js','user2.tsx']
}
const moduleFileExtensions = [
'web.mjs',
'mjs',
'web.js',
// 在线打包时加入
...dynamicMap[process.env.USER_ENV ] || [],
'js',
'web.ts',
'ts',
'web.tsx',
'tsx',
'json',
'web.jsx',
'jsx',
].filter(i=>!!i)
```
_______
3. 使用
使用时就简单了, 书写时,默认就用 xxx.js,如果是只有 user1 要用的文件,就加一个 xxx.user1.js
```
cd xxx/ && ls
index.user1.js
index.user2.js
index.user3.js
index.js
```