Vue-cli: 如何在webpack中使用DefinePlugin注入全局变量

Created on 25 Jun 2018  ·  4Comments  ·  Source: vuejs/vue-cli

Version

3.0.0-rc.3

Reproduction link

https://jsfiddle.net/547377507/3a8vdjo6/

Steps to reproduce

在配置文件中,这样写在js中始终访问不到config变量,谢谢所有的回答~
config
.plugin('define')
.init((Plugin, args) => {
args.push({ config: JSON.stringify({ name: '789' }) });
console.log(init输出为:${JSON.stringify(args)});
return new Plugin(...args);
})
.tap((args) => {
args.push({ config: JSON.stringify({ name: '456' }) });
console.log(tap输出为:${JSON.stringify(args)});
return args;
});

What is expected?

输出config变量的值

What is actually happening?

输出undefined

Most helpful comment

不要用 issue 问问题。

All 4 comments

  .plugin('define')
  .tap(args => {
     args[0]['config'] = JSON.stringify({ name: '789' }) 
     return args
})

@547377507 this is work well

@zhouxinyong 谢谢你的回答~

不要用 issue 问问题。

vue-cli 3.1.3

chainWebpack: config => {
    config.plugin('define').tap(definitions => {
        Object.assign(definitions[0]['process.env'], {
            name: '"vuejs"',
        });
        return definitions;
    });
}
Was this page helpful?
0 / 5 - 0 ratings