【发布时间】:2020-06-12 15:13:09
【问题描述】:
我花了几个小时试图弄清楚这一点,欢迎提出任何建议。这里的目标是组装一个构建后脚本,该脚本将在运行反应客户端的 nodeJS 应用程序上运行。
React 在 3000 后,节点在 5000。所以它需要 并发 库。以下是do-postbuild 和heroku-postbuild 的两次尝试(均失败)。
"scripts": {
"server": "nodemon server.js --ignore client",
"client": "npm start --prefix ../client",
"dev": "concurrently \"npm run server\" \"npm run client\" ",
"do-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix && npm run build --prefix client",
"heroku-postbuild": "cd ../client && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
},
文件夹结构
client
server
|_package.json (above)
|_server.js
npm run dev - 完美运行
当我尝试npm run heroku-postbuild 时,它会产生以下结果:
npm ERR! errno 1
npm ERR! ver1.02@1.0.0 heroku-postbuild: `cd client && npm install && npm install --only=dev --no-shrinkwrap && npm run build`
npm ERR! Exit status 1
当尝试写入 npm run do-postbuild 时,它会抛出一个错误,就像它在 server 文件夹中搜索 client 一样
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/Users/sites/server/client/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
【问题讨论】:
-
你是怎么解决这个问题的?
-
我停止同时使用客户端和服务器的生产版本。有人对解决方案投了反对票,但它对我来说非常有效。
-
你是如何在heroku上分别部署客户端和服务器的?
-
我在 Heroku 上进行了第一次生产构建(同时学习 Node/React),有很多指南。对我来说,这一天将会到来,您必须能够在本机 LINUX Box 上进行部署,我就是这样做的。
标签: node.js reactjs npm build concurrently