将 webpack 2 配置导出为函数可以防止转译吗?
Can exporting webpack 2 config as a function prevent transpiling?
我是 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 利用环境)。将配置导出为对象没问题。
我已经制作了一个 public 存储库来帮助其他人在 https://github.com/agentreno/es6-library-example 上使用 npm 'test' 和 'test:broken' 任务进行演示。如果有任何帮助,我将不胜感激。
问题不在于 webpack 配置,而在于你如何在 line 37 上的 karma.config 中使用它。业力配置中的 webpack
选项需要一个对象,但你给它一个函数。你实际上需要调用函数来获取结果对象,当你从命令行 运行 webpack 时,webpack 通常会为你做。
因为你目前没有使用 env
(webpack 函数的输入参数),你可以简单地调用它:
webpack: webpackConfig(),
但是当您开始拥有基于此的条件时,您需要传递正确的值。假设您正在使用文档中提到的示例:--env.production
和 --env.platform=web
。 Webpack 将按如下方式调用该函数:
webpackConfig({ production: true, target: 'web' })
我是 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 利用环境)。将配置导出为对象没问题。
我已经制作了一个 public 存储库来帮助其他人在 https://github.com/agentreno/es6-library-example 上使用 npm 'test' 和 'test:broken' 任务进行演示。如果有任何帮助,我将不胜感激。
问题不在于 webpack 配置,而在于你如何在 line 37 上的 karma.config 中使用它。业力配置中的 webpack
选项需要一个对象,但你给它一个函数。你实际上需要调用函数来获取结果对象,当你从命令行 运行 webpack 时,webpack 通常会为你做。
因为你目前没有使用 env
(webpack 函数的输入参数),你可以简单地调用它:
webpack: webpackConfig(),
但是当您开始拥有基于此的条件时,您需要传递正确的值。假设您正在使用文档中提到的示例:--env.production
和 --env.platform=web
。 Webpack 将按如下方式调用该函数:
webpackConfig({ production: true, target: 'web' })