webpack打包在控制台不能获取变量

用webpack打包后,在浏览器的console里不能获取变量是为何?
比如我用了vue,

var vm=new Vue({
data:{
num :0
}})

然后我想在控制台里修改一下num,vm.num=1,这样就会报错,vm没有;或者new Vue也是找不到的。
webpack打包的main.js没有压缩,在控制台看main.js还是vm这个变量名。

阅读 6k
4 个回答

@spencerht 说的对,webpack打包会将全局变量封装到闭包内,你访问不到的。
两个简单的变通办法:

  1. import vue后,将vue暴漏给window对象
  2. 单独引用vue,webpack做一个externals设置,这样不会将vue打包到一起了

webpack打包过后,会将内部代码封闭到一个立刻执行的函数作用域中去,防止污染全局。
所以你在全局访问那些变量时并不能获取到。

可以通过webpack ProvidePlugin解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏