簡體   English   中英

es6無法用於我的自定義npm模塊

[英]es6 not working for my custom npm module

我剛剛將我的javascript應用程序的一部分(用Vue2和nuxt.js編寫,但這並不重要)提取到一個外部npm包中。

我的主要應用程序將babel用於es6代碼,並且該軟件包中編寫的所有文件都使用es6語法。 問題是-將es6代碼提取到外部npm模塊后,uglifyjs開始抱怨其語法。 錯誤表明uglify將它們視為常規javascript文件,而不是es6。

如何告訴節點將我的打包文件視為es6?


編輯:

抱歉,沒有提供代碼示例,但實際上沒有太多顯示。 我有一個由nuxt.js / vue-cli生成器生成的常規webpack應用程序。 它使用babelify和uglify使其能夠使用es6 sytnax。 所有主應用程序均使用es6編寫。

假設我將兩個文件移至外部模塊AB (均為es6)。 模塊A需要模塊B並且在uglify抱怨時-該B文件未寫入es5中。 似乎由於某種原因,內部所需的模塊沒有首先被濫用。 這是預期的行為嗎?

解決方案很少

一種是提及您提取的模塊是供應商的一部分,因此在webpack中,您將:

entry: {
    ...
    vendor: [
        'jquery', 
        'my-extracted-module'
    ]
},

並使用CommonsChunkPlugin

plugins: [
    new webpack.optimize.CommonsChunkPlugin({
        name: 'vendor',
        filename: 'vendor.js'
    })
]

並將my-extracted-module編譯為獨立my-extracted-module (您可以在package.json中使用es:next功能)

另一個解決方案是告訴Webpack在構建時包括該軟件包,請參見

https://github.com/webpack/webpack/issues/2031

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM