第一次尝试在生产中运行reactJS项目。我可能错过了一些愚蠢的事情。
在我的服务器上,
npm start
运行完美。现在我想在生产模式下运行它,所以我这样做了:
npm install -g serve
npm run build # correctly creates /build folder
serve -s build
现在我得到:
/usr/local/lib/node_modules/serve/build/main.js:4
import { cwd as getPwd, exit, env as env2, stdout } from "node:process";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
我错过了什么?
我已经尝试过的:
我的nodeJS服务器在端口3001上运行,所以我也尝试运行
serve -s build -l 3001
,但它会导致相同的错误消息
有人说不要全局安装服务,而是运行
npm -S serve
- 不起作用
npx serve {...}
也不起作用(仅打印Unexpected token {
)
您使用的是非常旧的 Node 版本,它不支持
serve
所需的功能。
当前版本的
serve
(14) 在其文档中声明如下:
v14 及以上版本需要 Node v14 才能运行。如果无法升级到 Node v14,请使用serve
v13。serve
您需要升级到较新版本的 Node,最好是当前的长期支持版本 Node 20。
如果这不是一个选项,您可以尝试运行早期版本的
serve
,例如版本 13:
npx serve@13 -s build