npmを使用せずにnode.jsモジュールをインストールする方法


115

ノードのgithubページにリストされているが、npm-registryで公開されていないモジュールがかなりあります。これらのモジュールはnpmを使用してインストールできません。

これらのnodejsモジュールをGitからクローンした後にインストールする正しい方法は何ですか?

回答:


73

ソースをgithubからダウンロードする必要があります。メインファイルを見つけて、メインファイルに含めます。

これの例はここにあります> node.jsモジュールを手動でインストールする方法?

通常、ソースを見つけて、package.jsonファイルを確認する必要があります。そこに、メインファイルがどれであるかを見つけることができます。これをアプリケーションに含めることができます。

アプリにexample.jsを含めるため。これをアプリケーションフォルダーにコピーし、メインのjsファイルの先頭に追加します。

var moduleName = require("path/to/example.js")


1
(などvar myscript = require("http://www.mywebsite.com/myscript.js"))の外部URLからスクリプトをインポートすることはできますか?このrequire関数は外部URLでは機能しないようです。
アンダーソングリーン、

2
requireは実際には同期的であるため、外部URLに対しては機能しません。
Chris Tavares、2014年

注:-master追加したgithubライブラリを削除する必要があります。xxx-masterへの変更のようにxxx
BAR

65

これらのモジュールはnpmを使用してインストールできません。

実際には、名前の代わりにローカルパスを指定して、モジュールをインストールできます。リポジトリに有効なpackage.jsonファイルがある限り、リポジトリは機能します。


タイプnpm -lとかなりのヘルプは次のように表示されます:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

私の目を引いたのは: npm install <folder>

私の場合、mrtモジュールに問題があったため、これを行いました(一時ディレクトリで)

  • レポのクローンを作成する

     git clone https://github.com/oortcloud/meteorite.git
  • そして私はそれをグローバルにインストールします:

     npm install -g ./meteorite

ヒント:

同じ方法で、リポジトリをローカルのnpmプロジェクトにインストールすることもできます。

     npm install ../meteorite

また、開発中のパッチが必要な場合に備えて、リポジトリへのリンクを作成することもできます。

     npm link ../meteorite

1
最も優れています。私もモジュールに問題があったので、フォークしてWebプロジェクトの兄弟ディレクトリにそれを複製し、すべての依存関係を最新バージョンに更新してから、 'npm install ../ broken_module_nameそれは魅力のように機能しました。ありがとう!
ペリーテウ2016年

+1ですが、npmへのネットワークアクセスがなく、インストールするモジュールにnpm install <folder>他の無数のnpm依存関係がある場合は機能しません。
Abdul Rauf 2017年

npmがグローバル(ここでは不明)スコープまたはローカルスコープのいずれかからnode_modulesにパッケージを見つけた場合、パッケージの再ダウンロードは試行されません。これは、リポジトリのすべての直接的な依存関係を事前にダウンロードしてnode_moduleフォルダーにコピーできる場合に機能することを意味します。
Tiberiu C. 2017

11

githubからnode_modulesディレクトリにコードをダウンロードします

var moduleName = require("<name of directory>")

それでうまくいくはずです。

モジュールに依存関係があり、package.jsonがある場合は、モジュールを開いてnpm installと入力します。

お役に立てれば


メインファイルに名前が付けられている場合、このコードは機能すると思いますindex.js
R3tep

8

モジュールをローカルプロジェクトに直接複製できます。

端末を起動します。プロジェクトにcdしてから:

npm install https://github.com/repo/npm_module.git --save


1
私が探していた答え。
ファイサルMq 2017

パッケージが変更された場合はどうなりますか?どのように最新バージョンに更新しますか?ATM、私が見つけた唯一の「解決策」は、node_modulesからフォドラーを削除し、package.jsonエントリを削除して再度追加することでした。これは苦痛です...
PredragStojadinovićMar

1

ステップバイステップ:

  • あなたがプロジェクトに取り組んでいるとしましょうuse-gulp(使用requireS)node_modulesのようなgulpgulp-util
  • 次に、gulp-utillibにいくつかの変更を加え、use-gulpプロジェクトでローカルにテストしたいとします...
  • gulp-utilgithub \ bitbucketなどのフォークプロジェクト
  • プロジェクトに切り替えます。 cd use-gulp/node_modules
  • クローンgulp-utilのようにgulp-util-devgit clone https://.../gulp-util.git gulp-util-dev
  • npm install依存関係gulp-util-devが利用可能であることを確認するために実行します。
  • これでgulp-utilasのミラーができましたgulp-util-dev。あなたにはuse-gulpプロジェクト、あなたが今置き換えることができますrequire('gulp-util')...;コールをして:require('gulp-util-dev')あなたが行われ、変更をテストしますgulp-util-dev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.