私はこのようなことをしたいので、さらに重要なことにその依存関係npm install
もインストールします。package.json
../somelocallib
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
この機能は、npm のバージョン 2.0.0 で実装されました。npm install -S
ローカル パスは、またはを使用して保存できますnpm install --save
。これらの形式のいずれかを使用します。
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
例package.json
:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
npm ls
:
app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
somelocallib
通常どおりに依存関係として入れますpackage.json
:
"dependencies": {
"somelocallib": "0.0.x"
}
次に実行すると、npm は作業中のバージョンをsymlink としてnpm link ../somelocallib
インストールします。
参考:リンク(1)
これは私にとってはうまくいきます。
package.json ファイルに以下を配置します
"scripts": {
"preinstall": "npm install ../my-own-module/"
}
モジュールをバージョン管理にチェックインしていて、開発者が npm リンクを覚えていることに依存したくないため、これをさらに自動化したい場合は、これを package.json の「scripts」セクションに追加できます。
"scripts": {
"postinstall": "npm link ../somelocallib",
"postupdate": "npm link ../somelocallib"
}
これはハッキーを超えているように感じますが、「うまくいく」ようです。この npm issue からヒントを得ました: https://github.com/npm/npm/issues/1558#issuecomment-12444454
ここ2020年、Windows 10で作業して、試してみました
"dependencies": {
"some-local-lib": "file:../../folderY/some-local-lib"
...
}
次に、npm
インストールを行います。その結果、フォルダへのショートカットが に作成されnode-modules
ます。これはうまくいきません。Windows がサポートするハード リンクが必要ですが、ハード シンボリック リンクを作成するには、Windows で何か特別なことを行う必要があります。
ハード リンクはあまり必要ないので、代わりに URL を使用してみました。
"dependencies": {
"some-local-lib": "file:///D:\\folderX\\folderY\\some-local-lib.tar"
....
}
そして、これはうまく機能します。
tar (ライブラリの build / dist フォルダーにあるものを tar する必要があります) はノード モジュールの実際のフォルダーに抽出され、他のすべてと同様にインポートできます。
明らかに tar 部分は少し面倒ですが、「some-local-lib」はライブラリであるため (とにかくビルドする必要があります)、ハード リンクを作成したりローカル npm をインストールしたりするよりも、この解決策を好みます。
私はそれがうまくいくことを知っていnpm install ../somelocallib
ます。
ただし、質問で示した構文が機能するかどうかはわかりませんpackage.json
...
残念ながら、docは依存関係として URL のみを言及しているようです。
を試しfile:///.../...tar.gz
て、圧縮されたローカル ライブラリを指定して...動作するかどうか教えてください。
これは私にとってはうまくいきました:最初に、npmディレクトリに正しいユーザーがいることを確認してください
sudo chown -R myuser ~/.npm
sudo chown -R myuser /usr/local/lib/node_modules
次に、package.jsonでディレクトリをリンクします
"scripts": {
"preinstall": "npm ln mylib ../../path/to/mylib"
},
"dependencies": {
"mylib" : "*"
}
TypeScript で記述された一連のローカル依存関係を使用したかったのですが、ここでの回答はどれもうまくいきませんでした。npm install
依存関係の構築を単に拒否します。
パッケージを依存関係としてマークせずtsconfig.json
にプロジェクトに追加するために使用する必要がありました。私のユースケースは、いくつかの依存関係が相互に依存しているという事実によってさらに複雑になり、それらすべてをローカル フォルダーから取得したいと考えました。
これが私の解決策です:
// tsconfig.json
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@tiptap/*": [
"tiptap/packages/*/src"
]
}
}
}
上記の例では、 という名前のローカル プロジェクト サブフォルダーがtiptap/
あり、 には多くのパッケージがありますtiptap/packages/*
。このオプションは、自分のファイルと 内のファイルの両方で、すべてのインポートを に"paths"
書き換えます。@tiptap/foo
./tiptap/packages/foo/src
tiptap/
それは良い解決策ではありませんが、私にとってはうまくいった唯一のものです。