我是 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来利用环境) . 将配置导出为对象很好。
我已经制作了一个公共 repo 来帮助其他人在https://github.com/agentreno/es6-library-example上复制这个,并使用 npm 'test' 和 'test:broken' 任务来演示。我将不胜感激任何帮助。
问题不在于 webpack 配置,而在于您如何在第 37 行的 karma.config 中使用它。webpack
karma 配置中的选项需要一个对象,但你给它一个函数。您实际上需要调用该函数来获取结果对象,当您从命令行运行 webpack 时,webpack 通常会为您执行此操作。
由于您当前没有使用env
(webpack 函数的输入参数),您可以简单地调用它:
webpack: webpackConfig(),
但是当您开始使用基于此的条件时,您需要传递正确的值。假设您正在使用文档中提到的示例:--env.production
和--env.platform=web
。Webpack 将调用该函数如下:
webpackConfig({ production: true, target: 'web' })
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句