在样式加载器上出现“ require()不是函数”的Webpack构建或运行时错误

时间:2019-04-12 02:40:59

标签: webpack babel-loader

在进行webpack构建或使用webpack运行网站时,出现随机错误,提示要求不是功能。这是在深度嵌套的需求解决方案调用堆栈中不同点的不同模块上发生的。

我对此错误进行了广泛的搜索,发现它可能是由许多不同的症状引起的。我已经尝试了所有我能找到的东西,但没有一个为我工作。

我正在发布此解决方案,以说明在其他人可能遇到相同问题的情况下对我有用的方法。

这是Webpack集的相关部分:

/**
 * @returns {import('webpack').RuleSetRule}
 */
module.exports = () => ({
  test: /\.js$/,
  exclude: /node_modules\/(?!(query-string|strict-uri-encode|modernizr|split-on-first)\/).*/,
  use: {
    loader: 'babel-loader',
    options: {
      presets: [
        [ '@babel/preset-env', {
          // - If useBuiltIns: 'usage' is specified in .babelrc then do not include @babel/polyfill in either webpack.config.js entry array
          //   nor source. Note, @babel/polyfill still needs to be installed.
          // - If useBuiltIns: 'entry' is specified in .babelrc then include @babel/polyfill at the top of the entry point to your application
          //   via require or import
          // - If useBuiltIns key is not specified or it is explicitly set with useBuiltIns: false in your .babelrc, add @babel/polyfill
          //   directly to the entry array in your webpack.config.js.
          useBuiltIns: 'usage',
          corejs: '2'
        } ]
      ],
      plugins: [
        ['@babel/plugin-transform-modules-commonjs', {
          strictMode: false
        }]
      ]
    }
  }
})

上面的babel加载程序出现以下错误:

    Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
    TypeError: __webpack_require__(...) is not a function
        at Object.I8a+ (C:\TRAVLR\Repos\Travlr\Webs\WebApp\node_modules\css-loader\dist\cjs.js!C:\TRAVLR\Repos\Travlr\Webs\WebApp\node_modules\postcss-loader\src\index.js??ref--6-2!C:\TRAVLR\Repos\Travlr\Webs\WebApp\node_modules\sass-loader\lib\loader.js!C:\TRAVLR\Repos\Travlr\Library\UiKit\src\scss\app.scss:580:38)

OR

    at eval (webpack:///./node_modules/core-js/modules/_classof.js?:4)
    at Object../node_modules/core-js/modules/_classof.js (pkg.core-js.js:889)
    at __webpack_require__ (runtime.client.js:782)
    at fn (runtime.client.js:150)
    at eval (webpack:///./node_modules/core-js/modules/es6.object.to-string.js?:3)
    at Object../node_modules/core-js/modules/es6.object.to-string.js (pkg.core-js.js:2167)
    at __webpack_require__ (runtime.client.js:782)
    at fn (runtime.client.js:150)
    at eval (webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js?:11)
    at Object../node_modules/core-js/modules/es6.regexp.to-string.js (pkg.core-js.js:2306)```

1 个答案:

答案 0 :(得分:0)

对我有用的是从上述文件中更改以下行: useBuiltIns: 'usage'useBuiltIns: 'entry'

请注意,这可能不适用于您。相同的错误似乎有很多不同的原因。