Gatsby 中的 Webpack 配置,命名约定

Webpack configuration in Gatsby, naming conventions

我在我的一个项目中使用 Gatsby,由于其配置,在服务器端,Node 没有 window 加载器。综上所述,我在 Gatsby 文档中找到了关于如何避免出现这些错误的先前软件包的指南:

exports.onCreateWebpackConfig = ({ stage, loaders, actions }) => {
  if (stage === 'build-html' || stage === 'develop-html') {
    actions.setWebpackConfig({
      module: {
        rules: [
          {
            test: /enter-package-name/,
            use: loaders.null(),
          },
        ],
      },
    });
  }
};

最近我遇到了同样的错误,部分原因是我对 Webpack 及其使用的命名约定缺乏了解,我无法对这个包使用相同的配置:

rules: [
    {
       test: /@brainhubeu/react-carousel/
    }
]

我相信斜杠是用来定位包的,由于我的包的命名在两个单词之间有一个,它会抛出一个错误,因为在中间的斜杠后面没有期望的东西。

关于我如何使用正则表达式或 Webpack 执行此操作的任何想法。欢迎提供有关上述问题的材料和文档。

P.S - 如果这个问题可能非常基础,我深表歉意,但我自己找不到合适的文档。

你说中要害了。如您所料,test 是一个正则表达式(因此是斜杠 /),它测试 node_modules 内的文件夹位置。在您的情况下,您可能需要使用类似以下内容的中间斜杠进行转义:

exports.onCreateWebpackConfig = ({ stage, loaders, actions }) => {
  if (stage === 'build-html' || stage === 'develop-html') {
    actions.setWebpackConfig({
      module: {
        rules: [
          {
            test: /@brainhubeu\/react-carousel/,
            use: loaders.null(),
          },
        ],
      },
    });
  }
};