package.json - 脚本的一部分
"main": "app.js",
"scripts": {
"start": "cross-env NODE_ENV=production PORT=80 pm2 start app.js -i 0",
"dev": "nodemon app"
},
执行
% sudo npm start
> api@0.0.0 start
> cross-env NODE_ENV=production PORT=80 pm2 start app.js -i 0
Error: EACCES: permission denied, mkdir '/root/.pm2/logs'
at Object.mkdirSync (fs.js:1009:3)
at mkdirpNativeSync (/home/registry/api-npm/node_modules/pm2/node_modules/mkdirp/lib/mkdirp-native.js:29:10)
at Function.mkdirpSync [as sync] (/home/registry/api-npm/node_modules/pm2/node_modules/mkdirp/index.js:21:7)
at module.exports.Client.initFileStructure (/home/registry/api-npm/node_modules/pm2/lib/Client.js:133:25)
at new module.exports (/home/registry/api-npm/node_modules/pm2/lib/Client.js:38:8)
at new API (/home/registry/api-npm/node_modules/pm2/lib/API.js:108:19)
at Object.<anonymous> (/home/registry/api-npm/node_modules/pm2/lib/binaries/CLI.js:22:11)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
Error: EACCES: permission denied, mkdir '/root/.pm2/pids'
at Object.mkdirSync (fs.js:1009:3)
at mkdirpNativeSync (/home/registry/api-npm/node_modules/pm2/node_modules/mkdirp/lib/mkdirp-native.js:29:10)
at Function.mkdirpSync [as sync] (/home/registry/api-npm/node_modules/pm2/node_modules/mkdirp/index.js:21:7)
at module.exports.Client.initFileStructure (/home/registry/api-npm/node_modules/pm2/lib/Client.js:141:25)
at new module.exports (/home/registry/api-npm/node_modules/pm2/lib/Client.js:38:8)
at new API (/home/registry/api-npm/node_modules/pm2/lib/API.js:108:19)
at Object.<anonymous> (/home/registry/api-npm/node_modules/pm2/lib/binaries/CLI.js:22:11)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
Error: EACCES: permission denied, open '/root/.pm2/module_conf.json'
at Object.openSync (fs.js:498:3)
at Object.writeFileSync (fs.js:1524:35)
at module.exports.Client.initFileStructure (/home/registry/api-npm/node_modules/pm2/lib/Client.js:149:10)
at new module.exports (/home/registry/api-npm/node_modules/pm2/lib/Client.js:38:8)
at new API (/home/registry/api-npm/node_modules/pm2/lib/API.js:108:19)
at Object.<anonymous> (/home/registry/api-npm/node_modules/pm2/lib/binaries/CLI.js:22:11)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
Error: EACCES: permission denied, mkdir '/root/.pm2/modules'
at Object.mkdirSync (fs.js:1009:3)
at mkdirpNativeSync (/home/registry/api-npm/node_modules/pm2/node_modules/mkdirp/lib/mkdirp-native.js:29:10)
at Function.mkdirpSync [as sync] (/home/registry/api-npm/node_modules/pm2/node_modules/mkdirp/index.js:21:7)
at module.exports.Client.initFileStructure (/home/registry/api-npm/node_modules/pm2/lib/Client.js:157:25)
at new module.exports (/home/registry/api-npm/node_modules/pm2/lib/Client.js:38:8)
at new API (/home/registry/api-npm/node_modules/pm2/lib/API.js:108:19)
at Object.<anonymous> (/home/registry/api-npm/node_modules/pm2/lib/binaries/CLI.js:22:11)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
-------------
Omitted below
我怎么解决这个问题?
我是怎么做到的
- 第一的。我重新安装节点和 npm
- 第二。执行
sudo npm i -g pm2@latest
我将 node v14.17.0 && npm v7.14.0 与 n 一起使用。
这个问题发生在 ec2 和 wsl2(他们使用 ubuntu 20.04 LTS)。