Nvm-windows: .nvmrcでは機能しません

作成日 2016年05月20日  ·  8コメント  ·  ソース: coreybutler/nvm-windows

私の環境

  • [x] Windows 7以下(EOLのため、実際にはサポートされていません)
  • [ ] ウィンドウズ8
  • [] Windows 8.1
  • [ ] ウィンドウズ10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016
  • []私のWindowsインストールは英語以外です。

    私はすでに...

  • [x] READMEを読んで、npmの落とし穴とウイルス対策の問題に注意してください。

  • [x] wikiをレビューして、私の問題がまだ解決されていないことを確認しました。
  • [x]管理者権限を持つアカウントを使用していることを確認しました。
  • [x]は、問題(オープンおよびクローズ)を検索して、これが重複していないことを確認しました。
  • [x]質問やコメントにはgitterが使用されるため、forWindowsの使用方法に関する質問ではないことを確認しました。

    私の問題は関連しています(該当するものだけをチェックしてください):

  • [] settings.txt

  • []プロキシサポート
  • [] 32ビットまたは64ビットのサポート

    予想される行動

nvm use 4.4.4同じ結果

実際の動作

出力: node v (64-bit) is not installed.

問題を再現する手順:

ノードバージョンとして4.4.4を使用して.nvmrcファイルを作成しました。
コマンドラインに移動し、ファイルと同じフォルダーでnvm useを実行します。

duplicate wontfix

最も参考になるコメント

この問題への小さなバンプ。 ちょうどそれに遭遇しました。

そんなに難しいことはありません。 バージョンがnvm use提供されていない場合の対処方法は次のとおりです。

  1. .nvmrcからバージョンを取得します
  2. このバージョンはインストールされていますか? そうでない場合->それをインストールします
  3. このバージョンは現在使用されていますか? そうでない場合->それを使用します。
  4. 終わり

つまり、バージョン番号が指定されていない場合、 nvm usenvm install < .nvmrcnvm use < .nvmrc組み合わせです(疑似コマンド-現在は実際には機能しません)。

それ以上のものはありません。

全てのコメント8件

.nvmrcはサポートされていません。 これはnvmに固有の機能であり、NVM forWindowsではありません。

@coreybutler私はDisasterAccountability Projectの出身で、Windowsを使用していて、 .nvmrcを利用できない開発者がいます。 ボランティアのWeb開発者にnvm-windowsを採用し始めています。 .nvmrcサポートを再検討してください。 これは、.nvmrcを使用するサイトです。

@ inunotaisho26-基本的に、このプロジェクトは、バージョンマネージャーなしでノードをインストールするのと同じ方法でノードをインストールするかのようにノードを準備することに焦点を当てています。 .nvmrcは特定の環境管理の問題に取り組み始め、プロジェクトの範囲を大幅に拡大します。 「環境管理」は「バージョン管理」とは根本的に異なる問題だと思います。 これらのさまざまなユースケースについては、バージョン管理ワーキンググループで説明しました

この機能は以前にリクエストされたものですが、サポートするのに十分な時間はありません。 一般的な環境管理ソリューション(.nvmrc以外)を要求する人が多いため、これらのプロセスを合理化するための商用環境管理アプリのアイデアを実験しています。 コミュニティの大規模なウィッシュリストをサポートするための時間要件には、資金提供またはスポンサーシップが必要になるため、おそらくFenix用にすでに構築したインフラストラクチャに頼ります。 キャッチ:ETAなし。

そうは言っても、ロードマップを参照してください。 私が提案した「無料」ソリューションは、gitのpre-commitpost-pushなどに似たフックシステムです。これにより、開発者は独自の環境に役立つ独自のスクリプトを作成できます。 post-installpre-usepre-executeなどのアクションを考えてみてください。これにより、ユーザーは.nvmrcファイルを検索するフックスクリプトを記述し、その場でバージョンを切り替えることができます。 。

@coreybutlerでは、基本的に、ノードの複数のバージョンをインストールするための2つの異なるアプローチでしょうか。

ある種。 2つの異なる哲学がありますが、それらはノードをインストールすることよりもノードを使用することに関するものです。

哲学1:ネイティブ使用(直接プロセス)
ノード自体は.nvmrcサポートしていません。 独自の実行可能ファイルとnpmをインストールするだけです。 node.exeを直接実行することで_使用_されます。

哲学2:拡張使用(サブプロセス)
.nvmrcは、元のnvmプロジェクトによって導入された規則です。 node.exeを直接呼び出す代わりに、shimを使用します。 シムは、コマンドをノード実行可能ファイルに渡す前に疑似環境を構成する責任があります(つまり、ノードはシムのサブプロセスです)。 ここで.nvmrcロジックが処理されます。 特にWindowsでの問題は、ノードがユーザーのコンテキストではなく、シムのコンテキストで実行されることです。 これには、ノードサブプロセスに適切な資格情報を常に渡すとは限らない(主に昇格されたアクセス許可の周り)、わずかに異なる環境変数、ハードドライブパーティション(D:\ドライブなど)を常に認識するとは限らないなど、多くの影響/課題があります。場合によっては)ファイルパスの不一致(つまり、 __dirnameが予期しない動作をする)など。これらの問題は回避できますが、エンタープライズ環境(Active Directoryの展開、制限されたデスクトップ、SANドライブなど)を考慮すると複雑になります。

一般的なバージョン管理では、バージョンを切り替える必要があるたびにノードが実際にアンインストール/再インストールされるのを防ぐために、ある程度のシミングが必要です(これには永遠に時間がかかります)。 NVM4Wは、実行可能ファイルをシムするオプション2とは対照的に、シンボリックリンクを使用してインストール_directory_をシムすることにより、最初のアプローチに合わせます。 その結果、node.exe実行可能ファイルをサブプロセスとして実行するのではなく、常に直接実行していることになります。

この問題への小さなバンプ。 ちょうどそれに遭遇しました。

そんなに難しいことはありません。 バージョンがnvm use提供されていない場合の対処方法は次のとおりです。

  1. .nvmrcからバージョンを取得します
  2. このバージョンはインストールされていますか? そうでない場合->それをインストールします
  3. このバージョンは現在使用されていますか? そうでない場合->それを使用します。
  4. 終わり

つまり、バージョン番号が指定されていない場合、 nvm usenvm install < .nvmrcnvm use < .nvmrc組み合わせです(疑似コマンド-現在は実際には機能しません)。

それ以上のものはありません。

この問題への小さなバンプ。 ちょうどそれに遭遇しました。

そんなに難しいことはありません。 バージョンがnvm use提供されていない場合の対処方法は次のとおりです。

1. Take version from .nvmrc

2. Is this version installed? If not -> install it

3. Is this version currently in use? If not -> use it.

4. Done

つまり、バージョン番号が指定されていない場合、 nvm usenvm install < .nvmrcnvm use < .nvmrc組み合わせです(疑似コマンド-現在は実際には機能しません)。

それ以上のものはありません。

この問題を抱えているのは私だけではないことを嬉しく思います...
開発のためにLinuxに戻すことを考えています:/

@thany @jeromemeichelbeckプロジェクトをフォークして、この機能を自分で追加してください。 準備ができたら、ここにリンクを投稿します。

このページは役に立ちましたか?
0 / 5 - 0 評価