**failed Building static HTML for pages - 3.572s**
ERROR #95313
Building static HTML failed for path "/"
See our docs page for more info on this error: https://gatsby.dev/debug-html
38 | thrershold: 0,
39 | disableDragImage: function () {
> 40 | var transparent = new Image();
| ^
41 | transparent.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
42 | return transparent;
43 | }()
***WebpackError: ReferenceError: Image is not defined***
- index.js:40
node_modules/react-carousel-slider/es/index.js:40:1
- index.js:43
node_modules/react-carousel-slider/es/index.js:43:14
答案 0 :(得分:0)
尝试在您的 gatsby-node.js
中使用以下代码段:
exports.onCreateWebpackConfig = ({ stage, loaders, actions }) => {
if (stage === "build-html") {
actions.setWebpackConfig({
module: {
rules: [
{
test: /react-carousel-slider/,
use: loaders.null(),
},
],
},
})
}
}
一些 third-party dependencies use some global objects like window
or document
来制作他们的东西。这在运行 gatsby develop
时完全有效,因为代码是在浏览器端编译的。但是,gatsby build
出现在显然没有窗口的服务器端(您的 Node 服务器)中,因为它甚至还没有定义。
这就是为什么您需要通过调用 onCreateWebpackConfig
API 将 null
加载器添加到 webpack 的配置中,以避免服务器端的依赖转换。
规则是一个正则表达式(这就是为什么在斜杠之间),字面意思是,test
值与 node_modules
文件夹中的路径匹配以查找依赖项位置,因此,您必须将其放在那里确切的文件夹名称。