node.js用のjsdomパッケージを使用していますが、問題が発生しました。コンピューターの/node_modules/ jsdom / lib / jsdom / level2 / languagesでソースを手動で編集することで修正しましたが、機能します。ただし、プログラムを別のサーバーに公開したいと思います。
この変更された依存関係を処理する最良の方法は何ですか?一般に、npmインストールから変更された依存関係をどのように処理する必要がありますか?
さて、正しいことは、パッチをメンテナに提出して、アップストリーム(長期)で修正できるようにすることです。それまでの間、変更したファイルをそのままにして、メインパッケージをインストールした後、元のファイルの名前を変更し(mv file.js file.js.ORIG
)、コピーにシンボリックリンクを設定します(ln -s ../../../patches/jsdom/level2/languages/file.js file.js
)。
それは迅速で汚いオプションです。もう1つのオプションは、変更したソースを使用して新しいnpm tarballを作成し、その時点でNPMを指定することです。このnpm install
コマンドは、ローカルファイルシステムパスを.tar.gzアーカイブに送ることができます。それもうまくいくでしょう。
修正がすでにコードベースに含まれているが、まだnpmにリリースされていない場合は、登録済みパッケージの代わりにnpmを使用してtarballをインストールできます。Githubは、ダウンロードをクリックするだけで、コミットごとにtarballを提供します。
したがって、jsdomに関するこの特定の問題について。次のnpmコマンドを使用できます。
npm install https://github.com/tmpvar/jsdom/tarball/4cf155a1624b3fb54b2eec536a0c060ec1bab4ab
package.jsonでも機能します。
"dependencies" : {
"jsdom" : "https://github.com/tmpvar/jsdom/tarball/4cf155a1624b3fb54b2eec536a0c060ec1bab4ab"
}
tmpvarに感謝します!