在生产环境中构建&运行 时找不到模块'./static'
Cannot find module './static' when build&run in production env
我正在尝试在生产环境中构建 运行 Forge-RCDB project。我通过以下命令在 Windows Powershell 上工作:
npm run build-prod
$env:NODE_ENV ="production"
npm start
但是在 npm start
之后我得到了以下错误
> node bin/start.js
internal/modules/cjs/loader.js:583
throw err;
^
Error: Cannot find module './static'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (C:\Users\dyang\Documents\forge-rcdb.nodejs\bin\start.js:15:3)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! forge-rcdb@4.0.0 start: `node bin/start.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the forge-rcdb@4.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
我试过了
npm install node-static
但错误仍然相同。有人可以帮我弄这个吗? ./static 有什么用?
这里的./static
指的是bin/static
,是前端用npm run build-prod
构建后发出的地方。您 运行 犯的错误不是因为缺少 node-static
或任何特定的相关性。
检查 运行 npm run build-prod
时的控制台输出,并验证之后是否正确生成了 bin/static
目录,其中包含内置的 emits。根据您的发现在下方编辑您的问题或评论,我将相应地更新我的答案。
编辑:
测试了我自己,是的,原来的 运行 生产脚本错过了 npm run build-server
位。将提出 PR 来解决此问题。
因此在生产中 运行 的正确命令是:
npm run build-server && npm run build-prod && NODE_ENV=production npm start
并确保在开始之前按照 config/production.config.js
中的要求设置所有环境变量
使用 npm run build-server
而不是 npm run build-prod
可以解决问题。不确定其他潜在影响。
我正在尝试在生产环境中构建 运行 Forge-RCDB project。我通过以下命令在 Windows Powershell 上工作:
npm run build-prod
$env:NODE_ENV ="production"
npm start
但是在 npm start
> node bin/start.js
internal/modules/cjs/loader.js:583
throw err;
^
Error: Cannot find module './static'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (C:\Users\dyang\Documents\forge-rcdb.nodejs\bin\start.js:15:3)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! forge-rcdb@4.0.0 start: `node bin/start.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the forge-rcdb@4.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
我试过了
npm install node-static
但错误仍然相同。有人可以帮我弄这个吗? ./static 有什么用?
./static
指的是bin/static
,是前端用npm run build-prod
构建后发出的地方。您 运行 犯的错误不是因为缺少 node-static
或任何特定的相关性。
检查 运行 npm run build-prod
时的控制台输出,并验证之后是否正确生成了 bin/static
目录,其中包含内置的 emits。根据您的发现在下方编辑您的问题或评论,我将相应地更新我的答案。
编辑:
测试了我自己,是的,原来的 运行 生产脚本错过了 npm run build-server
位。将提出 PR 来解决此问题。
因此在生产中 运行 的正确命令是:
npm run build-server && npm run build-prod && NODE_ENV=production npm start
并确保在开始之前按照 config/production.config.js
使用 npm run build-server
而不是 npm run build-prod
可以解决问题。不确定其他潜在影响。