在 ubuntu 16 上使用 npm 安装 generator-jhipster 时出错

Error installing generator-jhipster with npm on ubuntu 16

我正在尝试将 jhipster 安装到 运行 我已经在 /home/thomas/Documents/softeng/project/CS673-Project 中克隆的存储库。我无法解析缺少的内容。我 运行 的命令是 sudo npm install -g generator-jhipster。 下面我包含了日志的完整相关部分。

11518 silly install generator-jhipster@4.5.2
11519 info lifecycle generator-jhipster@4.5.2~install: generator-jhipster@4.5.2
11520 verbose lifecycle generator-jhipster@4.5.2~install: unsafe-perm in lifecycle false
11521 verbose lifecycle generator-jhipster@4.5.2~install: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/usr/local/lib/node_modules/generator-jhipster/node_modules/.bin:/usr/local/lib/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
11522 verbose lifecycle generator-jhipster@4.5.2~install: CWD: /usr/local/lib/node_modules/generator-jhipster
11523 silly lifecycle generator-jhipster@4.5.2~install: Args: [ '-c', 'tabtab install --name jhipster --auto' ]
11524 silly lifecycle generator-jhipster@4.5.2~install: Returned: code: 1  signal: null
11525 info lifecycle generator-jhipster@4.5.2~install: Failed to exec install script
11526 verbose unlock done using /home/thomas/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
11527 verbose stack Error: generator-jhipster@4.5.2 install: `tabtab install --name jhipster --auto`
11527 verbose stack Exit status 1
11527 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:283:16)
11527 verbose stack     at emitTwo (events.js:87:13)
11527 verbose stack     at EventEmitter.emit (events.js:172:7)
11527 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
11527 verbose stack     at emitTwo (events.js:87:13)
11527 verbose stack     at ChildProcess.emit (events.js:172:7)
11527 verbose stack     at maybeClose (internal/child_process.js:821:16)
11527 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
11528 verbose pkgid generator-jhipster@4.5.2
11529 verbose cwd /home/thomas/Documents/softeng/project/CS673-Project
11530 verbose Linux 4.4.0-53-generic
11531 verbose argv "/usr/bin/nodejs" "/usr/local/bin/npm" "install" "-g" "generator-jhipster"
11532 verbose node v4.2.6
11533 verbose npm  v5.0.3
11534 error code ELIFECYCLE
11535 error errno 1
11536 error generator-jhipster@4.5.2 install: `tabtab install --name jhipster --auto`
11536 error Exit status 1
11537 error Failed at the generator-jhipster@4.5.2 install script.
11537 error This is probably not a problem with npm. There is likely additional logging output above.
11538 verbose exit [ 1, true ]

非常感谢

我可以在你的日志中看到,节点 4.2.6。它太旧了。试用版本 6.10.3 LTS

我在 ubuntu 16.10 中的一些较新版本 运行 遇到了完全相同的错误:

11518 info lifecycle generator-jhipster@4.5.5~install: Failed to exec 
install script
11519 verbose unlock done using 
/home/reginaldosantos/.npm/_locks/staging-3a08f0df5026584d.lock for 
/usr/local/lib/node_modules/.staging
11520 verbose stack Error: generator-jhipster@4.5.5 install: `tabtab install --name jhipster --auto`
11520 verbose stack Exit status 1
11520 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:283:16)
11520 verbose stack     at emitTwo (events.js:106:13)
11520 verbose stack     at EventEmitter.emit (events.js:191:7)
11520 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
11520 verbose stack     at emitTwo (events.js:106:13)
11520 verbose stack     at ChildProcess.emit (events.js:191:7)
11520 verbose stack     at maybeClose (internal/child_process.js:891:16)
11520 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
11521 verbose pkgid generator-jhipster@4.5.5
11522 verbose cwd /home/reginaldosantos
11523 verbose Linux 4.4.0-78-generic
11524 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "generator-jhipster"
11525 verbose node v6.11.0
11526 verbose npm  v5.0.3
11527 error code ELIFECYCLE
11528 error errno 1
11529 error generator-jhipster@4.5.5 install: `tabtab install --name jhipster --auto`
11529 error Exit status 1
11530 error Failed at the generator-jhipster@4.5.5 install script.
11530 error This is probably not a problem with npm. There is likely additional logging output above.
11531 verbose exit [ 1, true ]

令人惊讶的是,输出消息比详细日志对我的帮助更大:

/usr/local/bin/jhipster -> /usr/local/lib/node_modules/generator-jhipster/cli/jhipster.js

> generator-jhipster@4.5.5 install /usr/local/lib/node_modules/generator-jhipster
> tabtab install --name jhipster --auto

  tabtab:installer Installing completion script to bashrc directory +0ms

Error: You don't have permission to write to /home/reginaldosantos/.bashrc.
Try running with sudo instead:

  sudo /usr/local/bin/node /usr/local/lib/node_modules/generator-jhipster/node_modules/.bin/tabtab install --name jhipster --auto

oh oh Error: EACCES: permission denied, open '/home/reginaldosantos/.bashrc'
    at Error (native)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! generator-jhipster@4.5.5 install: `tabtab install --name jhipster --auto`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the generator-jhipster@4.5.5 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

肯定是我们安装的npm权限有问题。 我通过将 npm 配置更改为全局位置来解决它:

$ mkdir ~/.npm-global

$ sudo npm config set prefix '~/.npm-global'

$ echo "export PATH=~/.npm-global/bin:$PATH" >> ~/.profile

$ source ~/.profile

然后简单地安装 jhipster 没有 'sudo':

npm install -g generator-jhipster

这里有一些关于 fixing npm permissions

的更多信息

"Even though this fix works, it is kind of annoying needing to figure this out."

希望对您有所帮助!