我在我的Vue.js项目中使用webpack捆绑了我的源代码。
我知道我有2路。
的package.json:
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
的package.json:
"build": "webpack --progress --hide-modules --config build/webpack.prod.conf.js",
webpack.prod.conf.js由命令
生成vue init webpack
我认为2.现在更好。 因为我想使用{prod | dev} .env.js。对于几个env变量。
但我不知道如何将它们捆绑到几个文件(如bundle.js)而不是app。[chunkhash] .js on 2。
哪个一般很受欢迎?
混淆,Webpack4发表在这个二月。 CommonChunk似乎落在它上面。 我认为webpack建议使用" - mode"选项。但是
vue init webpack
命令似乎还没有赶上它。
答案 0 :(得分:1)
最后,我将我的资源转移到新项目纱线。 所以我可以使用webpack4和“--mode”选项。
除此之外,我通过“--env”选项和webpack.config.js选择env变量。
的package.json:
"scripts": {
"dev": "webpack-dev-server --mode development --env.ENV=local", // local-pc
"build:dev": "webpack --mode development --env.ENV=dev", // dev-server
"build:stg": "webpack --mode production --env.ENV=stg", // stg-server
"build:prd": "webpack --mode production --env.ENV=prd" // prd-server
},
webpack.config.js:
const path = require('path')
const webpack = require('webpack')
module.exports = env => {
if (env.ENV === 'local') {
envs = {
ENV: '"local"',
HOST: '"http://localhost:8080/"',
}
} else if (env.ENV === 'dev') {
envs = {
ENV: '"dev"',
HOST: '"http://localhost/"',
}
} else if (env.ENV === 'stg') {
envs = { ... }
} else if (env.ENV === 'prd') {
envs = { ... }
}
return {
...
plugins: [].concat([
new webpack.DefinePlugin({
'process.env': envs,
}),
]),
}
}
我可以在我的源代码中使用env变量,如:
console.log('host:%s', process.env.HOST)
开始:
yarn dev
或
yarn build:dev
等