私は共有コードをいくつか取り、それをNPMモジュールに入れました。中央のレジストリにアップロードしたくありません。問題は、どうやって他のプロジェクトからインストールするのですか?
明らかな方法はおそらく私自身のNPMレジストリをセットアップすることですが、資料によれば、それは多くの面倒を含みます。
ローカルファイルシステム上にあるNPMモジュールをインストールすることはできますか、それともgitからインストールすることさえできますか?
npm install --from-git git@server:project
cd somedir
npm install .
または
npm install path/to/somedir
somedir
はその中にpackage.json
を含まなければなりません。
それはgitについても知っています:
npm install git://github.com/visionmedia/express.git
あなたのプライベートnpmモジュールに追加
"private": true
あなたのpackage.jsonに
それから、他のモジュールでプライベートモジュールを参照するには、package.jsonでこれを使用します。
{
"name": "myapp",
"dependencies": {
"private-repo": "git+ssh://[email protected]:myaccount/myprivate.git#v1.0.0",
}
}
ローカルファイルシステム上にあるNPMパッケージをインストールすることができますか、それともgitからインストールすることさえできますか?
はい、できます!ドキュメントより https://docs.npmjs.com/cli/install
パッケージは以下のとおりです。
- a)package.jsonファイルで記述されたプログラムを含むフォルダ
- b)次のものを含むgzipされたtarball
- c)(b)に解決されるURL
- d)(c)でレジストリに公開されている
<name>@<version>
- e)(d)を指す
<name>@<tag>
- f)(e)を満たす「最新の」タグを持つ
<name>
- g)(b)に解決される
<git remote url>
NPMは華麗ではないですか?
2016年1月に更新
他の答えに加えて、チームのコンテキストでプライベートモジュールを利用可能にしたいというシナリオがある場合があります。
GithubとBitbucketはチームを生成するという概念をサポートしていますAPI Key。このAPIキーをpasswordとして使用して、このチームとしてのAPIリクエストを実行できます。
private npm modulesaddに
"private": true
あなたのpackage.jsonへ
それから、他のモジュールでプライベートモジュールを参照するには、package.jsonでこれを使用します。
{
"name": "myapp",
"dependencies": {
"private-repo":
"git+https://myteamname:[email protected]/myprivate.git",
}
}
ここでチーム名= myteamname、そしてAPIキー= aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
ここで私はbitbucketリポジトリを参照しますが、それはgithubを使ってもほとんど同じです。
最後に、代替手段として、$ 7 /月を支払うことを本当に気にしていないのであれば、 になります。箱から出してプライベートNPMモジュール 。
FWIW:民間組織のリポジトリを扱うとき、私はこれらすべての答えに問題がありました。
以下は私のために働いた:
npm install -S "git+https://[email protected]/orgname/repositoryname.git"
例えば:
npm install -S "git+https://[email protected]/netflix/private-repository.git"
なぜ私が他の答えが私のためにうまくいかなかったのか完全にはわからない、なぜならそれらは私がグーグルに当たってこれを見つける前にfirstを試みた回答。そして他の答えは私が過去にやったことです。
うまくいけば、これは他の誰かに役立ちます。
私はこれと同じ問題を抱えていて、何度か調べてみたところ、Reggie( https://github.com/mbrevoort/node-reggie )が見つかりました。かなりしっかりしています。これにより、NPMモジュールをプライベートサーバーに軽量に公開できます。完璧ではありません(インストール時の認証なし)、それでもまだ若いですが、私はそれをローカルでテストしました。
それは...(そしてこれは彼らのドキュメントからだけです)
npm install -g reggie
reggie-server -d ~/.reggie
それからあなたのモジュールディレクトリにcdしてください...
reggie -u http://<Host:port> publish
reggie -u http://127.0.0.1:8080 publish
最後に、そのURLを直接npm installコマンドで使用するか、package.json内から使用するだけでreggieからパッケージをインストールできます。
npm install http://<Host:port>/package/<name>/<version>
npm install http://<Host:port>/package/foo/1.0.0
または..
dependencies: {
"foo": "http://<Host:port>/package/foo/1.0.0"
}
以下のようにアクセスしやすい方法でコードを構成してください。これが可能な場合.
NodeProjs\Apps\MainApp\package.json
NodeProjs\Modules\DataModule\package.json
MainApp内@NodProjs\Apps\MainApp \
npm install --S ../../Modules/DataModule
package.jsonを次のように更新する必要があるかもしれません:
"dependencies": {
"datamodule": "../../Modules/DataModule"
}
これは私の状況ではうまくいきました。
arcseldonの答え から始めて、チーム名がURLに必要であることがわかりました。
npm install --save "git+https://myteamname@[email protected]/myteamname/myprivate.git"
また、APIキーはチームでのみ利用でき、個々のユーザーでは利用できません。
Npmは今無制限 プライベートホストモジュール を$ 7/user/monthで提供しています。
cd private-project
npm login
あなたのパッケージでjson set "name": " @username/private-project"
npm publish
それからあなたのプロジェクトを要求します:
cd ../new-project
npm install --save @username/private-project
Node.jsで構築された軽量のプライベートnpmプロキシレジストリである Verdaccio をこの目的に使用できます。また、無料でオープンソースです。 Verdaccioを使用することにより、単純なプライベートnpmレジストリのようにそれほど面倒な作業は必要ありません。
あなたはそれをインストールして実行する方法についての詳細な情報を見つけることができます 彼らのウェブサイトで しかし、ここに手順があります:
node >=8.x
が必要です。
// Install it from npm globally
npm install -g verdaccio
// Simply run with the default configuration that will Host the registry which you can reach at http://localhost:4873/
verdaccio
// Set the registry for your project and every package will be downloaded from your private registry
npm set registry http://localhost:4873/
// OR use the registry upon individual package install
npm install --registry http://localhost:4873
また、公開されているDockerに簡単に公開できるようにdockerがあり、設定した方法で他の人に配布できるプライベートnpmリポジトリがあることを確認できます!
これは私が探していたもの でした :
# Get the latest from GitHub, public repo:
$ npm install username/my-new-project --save-dev
# Bitbucket, private repo:
$ npm install git+https://token:[email protected]/username/my-new-project.git#master
$ npm install git+ssh://[email protected]/username/my-new-project.git#master
# … or from Bitbucket, public repo:
$ npm install git+ssh://[email protected]/username/my-new-project.git#master --save-dev
# Bitbucket, private repo:
$ npm install git+https://username:[email protected]/username/my-new-project.git#master
$ npm install git+ssh://[email protected]/username/my-new-project.git#master
# Or, if you published as npm package:
$ npm install my-new-project --save-dev
私はプライベートgithubリポジトリで以下を使用します。
npm install github:mygithubuser/myproject
マシンがファイアウォールの下にある場合でも、パブリックGithubリポジトリからインストールするように設定します。
dependencies: {
"foo": "https://github.com/package/foo/tarball/master"
}
とても簡単 -
npm config set registry https://path-to-your-registry/
実際にはこの行をregistry = "https://path-to-your-registry"
に/Users/<ur-machine-user-name>/.npmrc
に設定しています
明示的に設定した値、またはデフォルトで設定された値はすべて - npm config list
で確認できます。