2017-03-04 91 views
0

我是webpack的新手,並嘗試將它與Babel加載器一起用於在ES6中編寫庫。我也想使用Karma/PhantomJS進行測試。可以將webpack 2配置導出爲函數來防止轉譯?

我打了一個奇怪的問題,即PhantomJS表明ES6代碼沒有得到,當我運行測試轉換:

SyntaxError: Use of reserved word 'let' in strict mode 
at webpack:///say/hello.js:2:0 <- say/hello.spec.js:22929 

但是,當我出口我的WebPack配置的功能,這只是發生(拿按照https://webpack.js.org/configuration/configuration-types/#exporting-a-function-to-use-env的環境優勢)。將配置導出爲對象是很好的。

我已經做了一個公開回購協議,以幫助其他人在https://github.com/agentreno/es6-library-example上重現此問題,並用npm'test'和'test:broken'任務進行演示。我將不勝感激任何幫助。

回答

0

問題不在於webpack配置,而在於line 37上的karma.config中如何使用它。 karma配置中的webpack選項需要一個對象,但您要給它一個函數。實際上,您需要調用該函數來獲取生成的對象,當您從命令行運行webpack時,webpack通常會爲您執行此操作。

如果你還沒有使用當前env(將輸入參數的WebPack功能),你可以簡單地把它叫做:

webpack: webpackConfig(), 

但是當你開始有基於此條件下,你需要傳遞正確的值。假設您使用文檔中提到的示例:--env.production--env.platform=web。 Webpack將調用如下函數:

webpackConfig({ production: true, target: 'web' }) 
+0

非常明確的解釋,謝謝,我已經使用此修復程序更新了項目,以便其他人可以參考它。 –

相關問題