Export static NextJS App `TypeError: Cannot read property '/404' of undefined`
Export static NextJS App `TypeError: Cannot read property '/404' of undefined`
我尝试了几次使用快速启动方法 npx create-next-app
并遵循教程示例 https://nextjs.org/learn/excel/static-html-export/setup 中概述的说明从头开始 NextJS 项目。我想创建一个静态 HTML 站点。
我将 build
和 export
作业添加到 package.json
中的 scripts
标签:
"scripts": {
"dev": "next dev",
"build": "next build",
"export": "next export",
"start": "next start"
},
并根据示例创建一个 next.config.js
文件:
const fetch = require('isomorphic-unfetch');
module.exports = {
exportPathMap: async function() {
const paths = {
'/': { page: '/' }
};
}
};
构建 运行 很好,但是当我尝试 运行 导出时,出现以下错误:
TypeError: Cannot read property '/404' of undefined
at _default (~/Workspace/BlogNextJS/my-blog/node_modules/next/dist/export/index.js:10:202)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my-blog@0.1.0 export: `next export`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-blog@0.1.0 export script.
当我使用教程中的示例项目时,不会发生这种情况 (https://github.com/zeit/next-learn-demo.git)
任何人都可以告诉我可能会发生什么或给出要看什么的指示吗?
日志中的更多信息如下所示,但我不太了解它的含义:
6 info lifecycle my-blog@0.1.0~export: my-blog@0.1.0
7 verbose lifecycle my-blog@0.1.0~export: unsafe-perm in lifecycle true
8 verbose lifecycle my-blog@0.1.0~export: PATH: /home/klol/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/klol/Workspace/BlogNextJS/my-blog/node_modules/.bin:/home/klol/.nvm/versions/node/v12.12.0/bin:/home/klol/anaconda3/bin:/home/klol/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle my-blog@0.1.0~export: CWD: /home/klol/Workspace/BlogNextJS/my-blog
10 silly lifecycle my-blog@0.1.0~export: Args: [ '-c', 'next export' ]
11 silly lifecycle my-blog@0.1.0~export: Returned: code: 1 signal: null
12 info lifecycle my-blog@0.1.0~export: Failed to exec export script
13 verbose stack Error: my-blog@0.1.0 export: `next export`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/home/klol/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:210:5)
13 verbose stack at ChildProcess.<anonymous> (/home/klol/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:210:5)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
14 verbose pkgid my-blog@0.1.0
15 verbose cwd /home/klol/Workspace/BlogNextJS/my-blog
16 verbose Linux 5.0.0-31-generic
17 verbose argv "/home/klol/.nvm/versions/node/v12.12.0/bin/node" "/home/klol/.nvm/versions/node/v12.12.0/bin/npm" "run" "export"
我更改了 module.exports
代码,但未能 return 我创建的 paths
对象。文件 next.config.js
应如下所示:
module.exports = {
exportPathMap: async function() {
const paths = {
'/': { page: '/' }
};
return paths; //<--this was missing previously
}
};
我尝试了几次使用快速启动方法 npx create-next-app
并遵循教程示例 https://nextjs.org/learn/excel/static-html-export/setup 中概述的说明从头开始 NextJS 项目。我想创建一个静态 HTML 站点。
我将 build
和 export
作业添加到 package.json
中的 scripts
标签:
"scripts": {
"dev": "next dev",
"build": "next build",
"export": "next export",
"start": "next start"
},
并根据示例创建一个 next.config.js
文件:
const fetch = require('isomorphic-unfetch');
module.exports = {
exportPathMap: async function() {
const paths = {
'/': { page: '/' }
};
}
};
构建 运行 很好,但是当我尝试 运行 导出时,出现以下错误:
TypeError: Cannot read property '/404' of undefined
at _default (~/Workspace/BlogNextJS/my-blog/node_modules/next/dist/export/index.js:10:202)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my-blog@0.1.0 export: `next export`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-blog@0.1.0 export script.
当我使用教程中的示例项目时,不会发生这种情况 (https://github.com/zeit/next-learn-demo.git)
任何人都可以告诉我可能会发生什么或给出要看什么的指示吗?
日志中的更多信息如下所示,但我不太了解它的含义:
6 info lifecycle my-blog@0.1.0~export: my-blog@0.1.0
7 verbose lifecycle my-blog@0.1.0~export: unsafe-perm in lifecycle true
8 verbose lifecycle my-blog@0.1.0~export: PATH: /home/klol/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/klol/Workspace/BlogNextJS/my-blog/node_modules/.bin:/home/klol/.nvm/versions/node/v12.12.0/bin:/home/klol/anaconda3/bin:/home/klol/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle my-blog@0.1.0~export: CWD: /home/klol/Workspace/BlogNextJS/my-blog
10 silly lifecycle my-blog@0.1.0~export: Args: [ '-c', 'next export' ]
11 silly lifecycle my-blog@0.1.0~export: Returned: code: 1 signal: null
12 info lifecycle my-blog@0.1.0~export: Failed to exec export script
13 verbose stack Error: my-blog@0.1.0 export: `next export`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/home/klol/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:210:5)
13 verbose stack at ChildProcess.<anonymous> (/home/klol/.nvm/versions/node/v12.12.0/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:210:5)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
14 verbose pkgid my-blog@0.1.0
15 verbose cwd /home/klol/Workspace/BlogNextJS/my-blog
16 verbose Linux 5.0.0-31-generic
17 verbose argv "/home/klol/.nvm/versions/node/v12.12.0/bin/node" "/home/klol/.nvm/versions/node/v12.12.0/bin/npm" "run" "export"
我更改了 module.exports
代码,但未能 return 我创建的 paths
对象。文件 next.config.js
应如下所示:
module.exports = {
exportPathMap: async function() {
const paths = {
'/': { page: '/' }
};
return paths; //<--this was missing previously
}
};