【问题标题】:Bundled script failed to load in browser捆绑脚本无法在浏览器中加载
【发布时间】:2018-07-03 08:15:04
【问题描述】:

Webpack 编译成功,但无法在浏览器中加载。在检查 Web 控制台时,我发现在 _webpack_require_ 中无法访问某些模块。 当我在相关模块中将 es6 import 语法更改为 require 时,Web 控制台中抛出的错误消失了。 我不打算进入每个文件并将我的import 语法更改为require。我的 .babelrc 与 webpack.config.js 中的 babel-loader 一起配置。

真的很困惑下一步该做什么,因为这是我第一次使用 webpack

我的 webpack.config.js

 ***test: /\.(js|jsx)$/,
 include: [
   path.join(__dirname, 'client'),
   path.join(__dirname, './template')
 ],
 loader: 'babel-loader',
 exclude: /node_modules/,
 query: { cacheDirectory: true } ***

.babelrc 文件

{
  "presets": [
    "es2015",
    "react",
    "latest",
    "stage-2"
  ],
  "plugins": [
    "react-hot-loader/babel"
  ]
}

flashMessage.js:13 未捕获类型错误:无法读取属性 'ADD_FLASH_MESSAGE' 未定义 在 eval (flashMessage.js:13) 在对象。 (bundle.js:1406) 在 webpack_require (bundle.js:679) 在 fn (bundle.js:89) 在 eval (index.js:9) 在对象。 (bundle.js:1399) 在 webpack_require (bundle.js:679) 在 fn (bundle.js:89) 在 eval (index.js:9)

【问题讨论】:

    标签: javascript webpack ecmascript-6 babeljs babel-loader


    【解决方案1】:

    在我完全改变了我的 webpack.config 之后,错误仍然存​​在,我发现我没有返回 Array.reduce 方法,该方法是为了镜像一组动作,所以 webpack 编译了这么久因为文件路径是正确的,但由于函数返回 void 而无法加载。找到repo linkhere- 只是缺少返回关键字

    【讨论】:

      【解决方案2】:

      我个人在 webpack 中像这样配置 babel-loader

              test: /\.(js|jsx)$/,
              exclude: /node_modules/,
              use: {
                loader: 'babel-loader',
                options: {
                  cacheDirectory: true,
                  presets: ['react'],
                },
              },
      

      【讨论】:

      • 和 vinay gosain 已经尝试了上述所有方法,但它仍然存在,我认为如果 babel-loader 没有转换我的 import 语法,webpack 应该在编译期间抛出错误,但是编译成功,没有错误或警告
      • 评论区好像不能全部包含,这里是webpack.config文件的git repo链接MyRepoLink
      • 你试过删除include : [path.join(__dirname, 'client'), path.join(__dirname, './template')]吗?
      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 2011-11-07
      • 2012-06-01
      • 2021-04-23
      • 1970-01-01
      相关资源
      最近更新 更多