我刚刚将一部分我的javascript应用程序(用Vue2和nuxt.js编写,但这并不重要)提取到外部npm包。
我的主要应用程序正在使用babel for es6代码,并且该程序包中编写的所有文件都使用es6语法。问题是 - 在将es6代码提取到外部npm模块后,uglifyjs开始抱怨他们的语法。错误表明uglify将它们视为常规javascript文件,而不是es6。
我如何告诉节点将我的包文件视为es6?
很抱歉没有提供代码示例,但实际上没有太多要显示的内容。我有一个由nuxt.js / vue-cli生成器生成的常规webpack应用程序。它使用babelify和uglify使它能够使用es6 sytnax。所有主要应用程序都是使用es6编写的。
假设我将两个文件移动到外部模块 - A
和B
(两者都在es6中)。模块A
需要模块B
,并且当uglify抱怨时 - B
文件不是用es5编写的。似乎内部所需的模块由于某种原因没有首先被贬低。这是预期的行为吗?
答案 0 :(得分:0)
解决方案很少,
一个是提到您提取的模块作为供应商的一部分,因此在webpack中您将拥有:
entry: {
...
vendor: [
'jquery',
'my-extracted-module'
]
},
并使用CommonsChunkPlugin
:
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: 'vendor.js'
})
]
将my-extracted-module
编译成独立的(你可以在它的package.json中使用es:next feature)
另一个解决方案是告诉webpack在构建时包含该包,请参阅