私は今、Windows上でnodejsを学んでいます。いくつかのモジュールがnpm.cmdでグローバルにインストールされ、nodejsはインストールされたモジュールを見つけることができませんでした。例えば翡翠を
npm install jade -g
Jadeは"C:\Program Files (x86)\nodejs\node_modules"
ディレクトリにインストールされていますが、次のコードは"Cannot find module 'jade'"
エラーで失敗します。
var jade = require('jade');
ただし、jadeがローカルにインストールされている場合(npmの-gオプションなし)、コードは正常に実行されます。私はローカルにインストールされたモジュールを使いたくない、それは私にとってディスクスペースの浪費です。グローバルにインストールされたモジュールをWindows上で動かすにはどうすればいいですか?
NODE_PATH
という名前の環境変数を追加し、それを%USERPROFILE%\Application Data\npm\node_modules
(Windows XP)、%AppData%\npm\node_modules
(Windows 7/8/10)、またはnpmがあなたのWindowsフレーバーにモジュールをインストールすることになるところならどこにでもそれを設定してください。これを一回でやるには、これをSystem PropertiesダイアログのAdvancedタブでSystem変数として追加します(control.exe sysdm.cpl,System,3
を実行します)。
Windows 7以降での簡単な解決策は、単に実行することです。
rem for future
setx NODE_PATH %AppData%\npm\node_modules
rem for current session
set NODE_PATH=%AppData%\npm\node_modules
NODE_PATH
はNodeアプリでモジュールをインポートするときにだけ使われることを言及する価値があります。グローバルにインストールされたモジュールのバイナリをCLIで使用したい場合は、PATH
にも追加する必要がありますが、node_modules
の部分は含まれません(たとえば、Windows 7/8/10の%AppData%\npm
)。
昔の話
私はnode.js自身がかなり新しいので、完全に正しいとは言えませんが、私の経験からすると次のように動作します。
あなたがwindows 7プラットフォームにいるなら、多分あなたはこのようにNODE_PATHを変更するべきです:%AppData%\npm\node_modules
私はゾンビを起こすことができることを私は知っているが、私はあなたがあなたのグローバル変数パスにこれを追加する必要があるあなたがWindows 7のノードモジュールへのグローバルアクセスを必要とするなら
C:\Users\{USER}\AppData\Roaming\npm
重要:node_modules
の部分がない場合のみ、これを確認するのに30分かかりました。
Windows 10で動作させるために、私は自分のPATHにフォルダ%USERPROFILE%\AppData\Roaming\npm
を追加して解決しました。このように\node_modules
を追加すると%USERPROFILE%\AppData\Roaming\npm\node_modules\
はうまくいきませんでした。
このノードの ブログ投稿 から引用します。
一般に、経験則は次のとおりです。
- プログラムで使用したいものをrequire( 'whatever')を使用してインストールしている場合は、プロジェクトのルートにローカルにインストールします。
- シェルで使用したいものをコマンドラインなどでインストールする場合は、グローバルにインストールして、バイナリがPATH環境変数に配置されるようにします。
...
もちろん、両方を実行したい場合もあります。 Coffee-scriptとExpressはどちらも、ライブラリだけでなくコマンドラインインターフェイスを持つアプリの良い例です。そのような場合は、次のいずれかを実行できます。
- 両方の場所に取り付けてください。真剣に、あなたはディスク容量が不足していますか?本当に大丈夫です。それらは小さなJavaScriptプログラムです。
- グローバルにインストールしてから、npm link coffee-scriptまたはnpm link express(シンボリックリンクをサポートするプラットフォームを使用している場合)を使用します。次に、グローバルコピーを更新してすべてのシンボリックリンクも更新する必要があります。
短くするには、アプリディレクトリでnpm link jade
を使用します。
環境変数を追加/編集しようとしましたが、結論を出すようになりました。
User variables
の代わりに(上部のボックスの)System variables
を編集/追加します。それ以外の場合は、それを機能させるために「管理者として実行」する必要があります。;%AppData%\npm
をPath
に追加します(サポートされている場合は、jshint
およびgrunt-cli
のように)。require('<pkg_name>')
を作成するには、NODE_PATH
を作成して%AppData%\npm\node_modules
を設定します。 (ただし、Vista以降のようにmklink
を使用してOSを操作している場合、この要件には npm link
が推奨されます 。)テスト環境:
私は実行して、Windows 7でこの問題に遭遇しました
npm install -g gulp
通常のユーザーとしてログオンしている間、管理者として。
解決策:通常のユーザーと同じインストールを実行する場合(cmdの場合は「adminとして実行」ではありません)、すべて問題ありませんでした。デフォルトのインストールと検索パスに関連していると思います。
私は、グローバルモジュールが機能するようになるのにひどい時間を過ごしました。結局、私はシステム変数の下のPATH変数にC:\Users\yourusername\AppData\Roaming\npm
を明示的に追加しました。また、この変数をリスト内のnodejsパス変数の前に置く必要がありました。
Windows 10を実行しています。
Windowsの場合、誰もがnodejsとnpmモジュールのために環境変数を設定すべきだと言っていましたが、その理由を知っていますか?いくつかのモジュールでは、それらはコマンドラインツールを持っています、モジュールをインストールした後、そこに[module] .cmdファイルがありますC:\ Program Files\nodejs、ウィンドウコマンドで起動するために使用されます。そのため、cmdファイルを含むパスを環境変数%PATH%に追加しないと、コマンドウィンドウから正しく起動できません。
私のwin8.1での経験から、npmはC:\Users\[UserName]\AppData\Roaming\npm\node_modules
にモジュールをインストールしますが、C:\Users\[UserName]\node_modules
でダンプして検索します。
フルパスによるアプリケーション内の単純なソリューション参照モジュール
var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");
私は同じ問題を抱えていました、npm install -g bower
でbowerをインストールしようとしました
これはノードが私ではなく別のユーザーによってインストールされたためだと思います。
ノードをアンインストールしてから再インストールしました。インストール中に、私はオプションに追加このテキストを見た> npmモジュール:
ノード設置時のメッセージ
ノードのインストール後、私はnpm install -g bower
を再度実行しました。そして今、owerは働きます。
もちろん、私のように自分のユーザーでノードを再インストールする必要はありません。他のユーザーが説明したように、解決策はNODE_PATHまたはPATH変数でなければなりません。
これはnodeが他のユーザによってインストールされている場合(あるいはインストール中にPATHに追加> npm modulesオプションがマークされていない場合)にのみ発生するということを述べたものです。
私はこの問題についてつまずいた。なぜなら、私はwindows 10を持つ私の新しいコンピュータ上でvisual studio 2015でnode.jsを使いたいからである。シリアルおよびRFXCOMモジュールのためにこのバージョンを使用する必要があるため、私は従来のnode.js 0.10.39を使用します。
Windows 10の答えはC:\ Users\User\node_modulesで環境変数にNODE_PATHを設定することです。
Windows 10では、私はローカルにgulpをフォルダにインストールしなければなりませんでした:
C:\ Users\myaccount\AppData\Roaming\npm\node_modules
npm install gulp
これは私の "gulpが認識されない"という問題を修正しました
あるいは、~/.npmrc
right プレフィックス を追加することもできます。私は64 Win7用のC:\Program Files\nodejs
を持っています。
上記の答えはすべて私にとってはうまくいきませんでした。最終的に機能したのは、環境パス変数に%AppData%\ npmを追加することだけでしたおよびは、C:\ Program Files\nodejsの2つのngファイルを削除しました。
NgパッケージはC:\ Program Files\nodejs\node_modulesにインストールされていなかったため、nodejsディレクトリからngバイナリを使用しても機能しないことが明らかでした。
既に環境設定されているため、なぜこのディレクトリを検索したのか分かりません-PATH環境変数-C:\ Users\MyUserの.npmrc-システム変数やNODE_PATHを追加しようとしました
これを this からダウンロードして再インストールするだけで、すべてのパスの問題が解決されます。
コマンドプロンプトまたは端末を再起動することを忘れないでください。