【问题标题】:Webpack not injecting varsWebpack 不注入变量
【发布时间】:2016-07-08 18:50:21
【问题描述】:

我使用got 作为 npm 包并将其导入我的组件之一。当我在 Safari 中通过 Webpack only 运行所有内容时,它会说:

SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.

仔细查看后,肯定是got 包没有将其const 转换为var

我不确定要检查什么来解决此问题。

通过一些研究,我发现了一些建议的解决方案,例如:

  • --harmony 标志添加到我的构建命令中
  • 让我的.babelrc 预设读取"presets": ["es2015", "react", "stage-0"]
  • 已将我的 node_modules 排除并包含在我的 webpack 中的 javascript 加载程序中

所有这些都没有帮助。

加载器示例:

{
  test: /\.js$/,
  loaders: ['babel'],
  exclude: /node_modules/, // also tried commenting out this line
  include: path.join(__dirname, 'src')
},

【问题讨论】:

  • 你是如何加入node_modules的?你试过include: [path.join(__dirname, 'src'), path.join(__dirname, 'node_modules')])吗?
  • @YuryTarabanko 非常有趣。这对我有用!在以这种方式包含我的node_modules 时,我还有什么需要注意的吗?
  • 在构建步骤中添加更多文件进行转换会牺牲速度。我建议您更具体一些,仅包含来自node_modules.got 文件夹

标签: javascript node.js npm webpack


【解决方案1】:

由于您包含src 文件夹(我相信它是node_modules 文件夹的兄弟)添加或评论exclude: /node_modules/ 没有区别。

如果您需要处理特定的已安装模块,您可以使用以下加载程序配置。 Issue on github.

{
  test: /\.js$/,
  loader: 'babel',
  include: [
    path.join(__dirname, 'src'),
    path.join(__dirname, 'node_modules', 'got')
  ]
},

【讨论】:

  • 我的src 文件夹是我保存所有组件和容器的地方。我注意到的唯一奇怪的事情是当我包含 node_modules 时,它会处理所有需要的 javascript 并将它们放入一个名为“Extra Scripts”的文件夹中。 Here's what I'm talking about
  • 嗯,这出乎意料。不知道为什么添加处理步骤会影响输出。您是否尝试过包含单个 got 模块?
  • 我刚刚在您的答案中实现了您建议的代码,但我仍在浏览器中收到“额外脚本”。
猜你喜欢
  • 2015-03-24
  • 2019-02-10
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多