node.js - 如何修复 PM2 nodejs spawn babel-node ENOENT
问题描述
我正在尝试使用 PM2 运行我的 nodejs 项目。这是我的 package.json 的一部分
{
"scripts": {
"pretest": "yarn run test-cleanup",
"preinstall": "yarn global add pm2",
"build": "rm -rf dist && babel src --out-dir dist --source-maps --watch && cp -R src/utils/email/templates dist/utils/email/templates",
"build:tests": "babel tests --out-dir dist-tests",
"start": "pm2-runtime start ecosystem.prod.config.js",
"dev": "pm2 start ecosystem.dev.config.js && pm2 log",
"test": "concurrently 'yarn run test-not-ratelimit' 'yarn run test-ratelimit'",
"test:watch": "yarn run test-cleanup && yarn run test-not-ratelimit --watch --verbose",
"test-not-ratelimit": "ava --match='!*RateLimiter*' --fail-fast",
"test-ratelimit": "TESTING_RATELIMITER=true ava --match='*RateLimiter*' --fail-fast",
"test-cleanup": "node tests/_pretest-cleanup.js",
"prettier": "prettier --config ./.prettierrc --write \"**/*.js\"",
"lint": "prettier --check --config ./.prettierrc \"**/*.js\" && eslint ./src ./tests --max-warnings 0",
"lint-fix": "yarn prettier && eslint --fix ./src ./tests"
},
"heroku-run-build-script": true,
"devDependencies": {
"@babel/cli": "^7.7.4",
"@babel/core": "^7.7.4",
"@babel/node": "^7.7.4",
"@babel/preset-env": "^7.7.4",
"@babel/register": "^7.7.4",
"ava": "^2.4.0",
"babel-plugin-module-resolver": "^3.2.0",
"concurrently": "^5.0.0",
"eslint": "^6.7.1",
"eslint-config-airbnb": "^18.0.1",
"eslint-config-prettier": "^6.7.0",
"eslint-import-resolver-babel-module": "^5.1.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-prettier": "^3.1.1",
"husky": "^3.1.0",
"lint-staged": "^9.5.0",
"prettier": "^1.19.1",
"rewiremock": "^3.13.9",
"sinon": "^7.5.0",
"supertest": "4.0.2"
},
"engines": {
"node": "12"
}
}
我运行npm run dev
并显示此错误:
PM2 | at onErrorNT (internal/child_process.js:456:16)
PM2 | at processTicksAndRejections (internal/process/task_queues.js:80:21)
PM2 | 2019-12-03T10:08:05: PM2 log: App [api:0] starting in -fork mode-
PM2 | 2019-12-03T10:08:05: PM2 log: App [api:0] online
PM2 | 2019-12-03T10:08:05: PM2 error: Error: spawn babel-node ENOENT
PM2 | at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
PM2 | at onErrorNT (internal/child_process.js:456:16)
PM2 | at processTicksAndRejections (internal/process/task_queues.js:80:21)
PM2 | 2019-12-03T10:08:05: PM2 log: App [conductor:1] starting in -fork mode-
PM2 | 2019-12-03T10:08:05: PM2 log: App [conductor:1] online
PM2 | 2019-12-03T10:08:05: PM2 error: Error: spawn babel-node ENOENT
PM2 | at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
PM2 | at onErrorNT (internal/child_process.js:456:16)
PM2 | at processTicksAndRejections (internal/process/task_queues.js:80:21)
我尝试安装babel-cli
和babel-node
全局但仍然遇到同样的错误。有什么建议吗?
P/s:这个项目已经在我朋友的 Macbook 上运行了,我用的是 Windows。可能Os差异是一个原因吗?
解决方案
推荐阅读
- azure - 将 Azure 应用程序洞察中的 LOGMESSAGE 事件记录到 NewRelic
- javascript - 使用 JS 在下拉列表中按 2 个自定义分类法过滤 WordPress 帖子
- windows - 当用户在资源管理器中打开文档时,是否可以使用挂钩机制?
- javascript - 如何获取数组中的重复元素
- java - Android:ImageView 的宽度不会从 SeekBar 侦听器更改
- javascript - 有没有办法在运行其他代码之前等待异步函数完成?
- python - 如何在 FastAPI 应用函数 Python 中使用动态表单数据?
- javascript - 递归计数器在 codewars kata 中不起作用
- android - 如何与运行 LineageOS 的手机同步文件?
- javascript - Javascript函数在if语句之外不起作用