我是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;要展示的任务。我非常感谢任何帮助。
答案 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' })