在docker 中使用 npm命令的时候报了以下错误:

rror: could not get uid/gid [ 'nobody', 0 ] at /usr/local/lib/node_modules/npm/node_modules/uid-number/uid-number.js:37:16 at ChildProcess.exithandler (child_process.js:301:5) at ChildProcess.emit (events.js:198:13) at maybeClose (internal/child_process.js:982:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) TypeError: Cannot read property 'loaded' of undefined at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98:27) at errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3) at /usr/local/lib/node_modules/npm/bin/npm-cli.js:77:20 at cb (/usr/local/lib/node_modules/npm/lib/npm.js:225:22) at /usr/local/lib/node_modules/npm/lib/npm.js:263:24 at /usr/local/lib/node_modules/npm/lib/config/core.js:83:7 at Array.forEach () at /usr/local/lib/node_modules/npm/lib/config/core.js:82:13 at f (/usr/local/lib/node_modules/npm/node_modules/once/once.js:25:25) at afterExtras (/usr/local/lib/node_modules/npm/lib/config/core.js:173:20) /usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98 var doExit = npm.config.loaded ? npm.config.get('_exit') : true ^ TypeError: Cannot read property 'loaded' of undefined at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:98:27) at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3) at process.emit (events.js:198:13) at process._fatalException (internal/bootstrap/node.js:496:27)

解决方案

在使用npm命令之前执行

 npm config set unsafe-perm true

例如在Dockfile中增加

 ### 增加这一行
 RUN npm config set unsafe-perm true
 RUN npm install