可以导出webpack 2配置作为功能阻止转换吗?

时间:2017-03-04 13:51:12

标签: phantomjs karma-runner webpack-2

我是webpack的新手,并试图与Babel加载器一起使用,在ES6中编写一个库。我还想使用Karma / PhantomJS作为测试管道。

我遇到了一个奇怪的问题,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&#39;测试&#39;来重现这一点。并且&#39;测试:破坏&#39;要展示的任务。我非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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' })