vue-cli 使用 webpack 模板, DefinePlugin 定义问题?

阅读build/webpack.dev.conf.js 有如下代码:

module.exports = merge(baseWebpackConfig, {
    // ...  
    plugins: [
        new webpack.DefinePlugin({
          'process.env': config.dev.env,
       }),
   ]
})

通过阅读webpack 1.x 的文档, DefinePlugin 使用方式如下

new webpack.DefinePlugin({
    PRODUCTION: JSON.stringify(true),
    VERSION: JSON.stringify("5fa3b9"),
    BROWSER_SUPPORTS_HTML5: true,
    TWO: "1+1",
    "typeof window": JSON.stringify("object")
})

修改 webpack.dev.conf.js

module.exports = merge(baseWebpackConfig, {
    // ...  
    plugins: [
        new webpack.DefinePlugin({
          'process.env': config.dev.env,
          'VERSION': JSON.stringify('0.0.1')
       }),
   ]
})

入口文件: main.js

console.log(VERSION); // 不存在 undefined
console.log(process.env); // 存在

如何在DefinePlugin的对象新属性VERSION的全局变量 ?

PS: 如果我附加在process上,如下是可以的。 难道说只能是用附加在process上吗 ?

  new webpack.DefinePlugin({
      'process.env': config.dev.env,
      'process.VERSION': '"0.0.1"'
  })
阅读 9.4k
1 个回答

试了一下,没有任何问题啊,你有使用 eslint 吗?如果使用了 eslint,有可能需要添加 eslint 的 global 选项:

/* global VERSION:false */
console.log(VERSION)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题