1

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)。

4

0 回答 0