npm - 为什么我的 Yeoman 发电机安装在错误的位置?

标签 npm yeoman

我的 Yeoman 发电机有问题。如果我运行“npm install [generator-name] -g”,它们安装得很好。然而,当我尝试运行“yo [generator-name] yeoman 似乎找不到生成器。如果我只是运行“yo”,它也不会列在我的其他生成器中。我尝试了一堆生成器,结果总是一样的。

经过一番调查后,我发现下载的生成器位于

/usr/local/lib/node_modules/

但是我的其他生成器放置在

/usr/local/lib/share/npm/lib/node_modules/

这是它在我的机器上的外观图像 /image/InQcZ.png ,我正在运行 OSX,以防万一。看来我有些不对劲 - 但我无法弄清楚。

不确定这是否有帮助,但在 $PATH 返回时,brew doctor 和 $NODE_PATH 不返回任何内容:

-bash: 
/usr/local/share/npm/bin:
/Users/marcus/.rvm/gems/ruby-2.0.0-p247/bin:
/Users/marcus/.rvm/gems/ruby-2.0.0-p247@global/bin:
/Users/marcus/.rvm/rubies/ruby-2.0.0-p247/bin:
/Users/marcus/.rvm/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/local/git/bin: No such file or directory


更新

<小时/>

我尝试了小埃迪·蒙奇(Eddie Monge Jr)的建议,现在我的角度生成器工作正常。然而,当我安装另一个生成器(chrome-extension)时,yeoman 坚持认为它没有安装/找到。

当我运行 ls $(npm config get prefix)/lib/node_modules 时,我得到:

bower                      generator-mocha
generator-angular          grunt-cli
generator-chrome-extension npm
generator-karma            yo

并且npm list -g返回这个(我删掉了很多通用的东西)

/usr/local/lib
├─┬ bower@1.2.3
├─┬ generator-angular@0.4.0
│ └─┬ yeoman-generator@0.13.3
├─┬ generator-chrome-extension@0.2.3
│ └─┬ yeoman-generator@0.12.3
├─┬ generator-karma@0.5.0
│ └─┬ yeoman-generator@0.13.3
├─┬ generator-mocha@0.1.1
│ └─┬ yeoman-generator@0.10.5
├─┬ grunt-cli@0.1.9
├─┬ npm@1.3.5
└─┬ yo@1.0.0

对我来说奇怪的是,如果我运行 yo --help 我会得到一个奇怪的生成器列表

[?] What would you like to do?
  [ ] Run the Angular generator
  [ ] Run the Foundation generator
  [ ] Run the H5bp generator
  [X] Run the Mocha generator
  [ ] Run the Webapp generator
  [ ] Run the Karma generator
  [ ] Update your generators
  [ ] Install a generator
  [ ] Find some help
  [ ] Get me out of here!

最佳答案

我尝试在 Ubuntu precision32 vagrant 虚拟机上安装 Yeoman。我遇到了同样的问题:虽然在安装这些生成器的过程中没有出现错误,但 Yeoman 没有找到我安装的生成器。文件已就位,权限似乎也正常。

上述解决方案对我不起作用。

我跑了

yo doctor

看看出了什么问题,结果发现问题如下:

[Yeoman Doctor] Uh oh, I found potential errors on your machine
---------------

[Error] NPM root value is not in your NODE_PATH
  [info]
    NODE_PATH = /usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
    NPM root  = /home/vagrant/npm/lib/node_modules

  [Fix] Append the NPM root value to your NODE_PATH variable
    Add this line to your .bashrc
      export NODE_PATH=$NODE_PATH:/home/vagrant/npm/lib/node_modules
    Or run this command
      echo "export NODE_PATH=$NODE_PATH:/home/vagrant/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

Yeoman Doctor 建议的修复方法如宣传的那样有效。

关于npm - 为什么我的 Yeoman 发电机安装在错误的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081125/

相关文章:

javascript - 如何在没有 root 访问权限的情况下设置 npm( Node 包管理器)?

node.js - npm install 好像不对

node.js - 使用 npm 本地安装包和全局安装包有什么区别?

typescript - "Missing exports"将 wasm 与 rollup 捆绑在一起时

angularjs - 安装 Yeoman 错误

npm - 由于 0.9.5.tar.gz 的 406,Yeoman 不会安装

gruntjs - Grunt cssmin 缩小后的 CSS 为空

javascript - 在 Yeoman 应用程序中使用 Grunt Build 缩小后出现 Angular "Unknown Provider"错误

node.js - 更新npm并安装docpad后出现权限错误

git - 我可以忽略 master 分支中的构建文件夹吗? - 使用 Git 子树的 Yeoman 部署