为什么我的Yeoman发电机安装在错误的地方?
Yeoman发电机有问题。 如果我运行“npm install [generator-name] -g”,它们安装得很好。 然而,当我尝试运行“哟[发电机名] yeoman似乎无法find发电机。如果我只是运行”哟“我也没有列出我的其他发电机。我已经尝试了一堆发电机和结果总是一样的
经过一点点调查,我发现下载的发电机被放置在
/usr/local/lib/node_modules/
但我的其他发电机被放置在
/usr/local/lib/share/npm/lib/node_modules/
这里是我的机器上的图像http://i.imgur.com/DxWTYHb.png ,我正在运行OSX以防万一。 看起来有点不对劲 – 但我无法弄清楚。
不知道这是否有帮助,但酿造医生和$ NODE_PATH返回什么,而$ 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
UPDATE
我尝试了Eddie Monge Jr的build议,现在我的angular度发生器工作正常。 但是,当我安装另一个发电机(铬扩展)自我坚持,它没有安装/find。
当我运行ls $(npmconfiguration获取前缀)/ lib / node_modules我得到这个:
bower generator-mocha generator-angular grunt-cli generator-chrome-extension npm generator-karma yo
和npm列表-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
对我来说,奇怪的部分是如果我运行哟 – 帮助我得到一个奇怪的发电机列表
[?] 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精准的stream浪者虚拟机上安装Yeoman。 我遇到了同样的问题:Yeoman没有find我安装的发电机,虽然在安装这些发电机时没有错误。 文件到位,权限似乎没问题。
上述解决scheme不适合我。
我跑了
yo doctor
看看出了什么问题,事实certificate,问题如下:
[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医生build议的解决办法像广告一样工作。
我遇到这个问题,我希望能帮助别人。 我相信升级NPM给我带来了这个最初的问题。
/usr/local/lib/node_modules
过去是我很多模块的位置。 由于在某一时刻升级节点,目录变成了
/usr/local/share/npm/lib/node_modules
当我将运行新的安装,如:
npm install -g grunt-cli
因为我从命令行运行grunt
它不会'find'它(这是因为它不在我的新的node_modules目录)。 我在.bash_profile中设置了这个:
export PATH=$PATH:/usr/local/share/npm/bin
现在我指向新的 node_modules
目录因此,我安装的所有新npm模块find正确的位置:/ usr / local / share / npm / lib / node_modules
但不是yo
我跑了一个which yo
,我的path是
/usr/local/bin/yo
这个二进制文件指向了旧的 node_modules
安装@
/usr/local/lib/node_modules
我的解决scheme是做到这一点
rm /usr/local/bin/yo npm remove -g yo
老的提到yo
已经不存在了,现在我可以做了
npm install -g yo
这会将其添加到新的node_modules
位置
/usr/local/share/npm/lib/node_modules
现在新的“哟”引用适当的node_modules安装基础
source ~/.bash_profile
那么我们可以看到哟是从正确的位置引用
which yo /usr/local/share/npm/bin/yo
所有未来的生成器将被放置在适当的node_modules
目录中,并且yo
将能够毫无问题地find它们!
我完全卸载了yeoman,然后重新安装它
npm remove -g yo npm install -g yo
这解决了我缺lessangular度发生器的问题。
听起来像你的NPM可能会失去作用。 检查安装的东西:npm config get prefix是你想要安装软件包的地方吗? 那是他们目前安装的地方吗?
列出那里有什么:
ls $(npm config get prefix)/lib/node_modules
这将列出全球安装的npm软件包。
npm list -g
将列出当前安装的东西。 确保哟和发电机列在顶层。
要删除哟的东西,并重新开始:
npm remove -g yo generator-* yeoman-generator npm install -g yo generator-angular
这应该解决的事情。