将 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来利用环境) . 将配置导出为对象很好。

我已经制作了一个公共 repo 来帮助其他人在https://github.com/agentreno/es6-library-example复制这个,并使用 npm 'test' 和 'test:broken' 任务来演示。我将不胜感激任何帮助。

迈克尔·荣戈

问题不在于 webpack 配置,而在于您如何在第 37 行的 karma.config 中使用它webpackkarma 配置中选项需要一个对象,但你给它一个函数。您实际上需要调用该函数来获取结果对象,当您从命令行运行 webpack 时,webpack 通常会为您执行此操作。

由于您当前没有使用env(webpack 函数的输入参数),您可以简单地调用它:

webpack: webpackConfig(),

但是当您开始使用基于此的条件时,您需要传递正确的值。假设您正在使用文档中提到的示例:--env.production--env.platform=webWebpack 将调用该函数如下:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章