我在vue.js前端下面运行一个非常简单的web pack配置。 bundle.js已编译但仍生成“您正在开发模式下运行Vue”警告。我遵循了here指定的建议,但它没有改变任何内容。
请问有什么想法吗?
这是我的webpack.config.js:
var webpack = require('webpack')
module.exports = {
entry: './www/src/js/main.js',
output: {
path: "./www/static/js",
filename: "bundle.js"
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
],
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/
},
{
test: /\.vue$/,
loader: 'vue'
}
]
},
vue: {
loaders: {
js: 'babel'
}
}
}
答案 0 :(得分:28)
您使用的是哪个版本的Vue?如果 Vue 2.1.0或更高,请检查以下答案:
您可能正在使用vue.js
文件而不是vue.common.js
文件。
要直接使用,您应该使用vue.js
for dev和vue.min.js
进行制作。这两个文件的环境分别硬编码为“开发”和“生产”。
对于WebPack,您应该使用vue.common.js
文件,因为它将处理process.env.NODE_ENV
变量。为此,请在webpack文件中添加别名属性:
module.exports = {
...
resolve: {
alias: {
'vue$': 'vue/dist/vue.common.js'
}
},
...
}
答案 1 :(得分:7)
我正在做的问题:
import Vue from 'vue/dist/vue.js'
而不是:
import Vue from 'vue/dist/vue.common.js'
差异是第一个被硬编码为dev,这就是为什么警告不会被剥夺。
答案 2 :(得分:1)
如果您使用的是OSX(Unix)|| Linux的
export NODE_ENV=production
Windows用户应使用
设置NODE_ENVset NODE_ENV=production
您确定要设置NODE_ENV var吗?检查一下。
echo $NODE_ENV