2016-11-30 8 views
0

を使用する:強制依存私はWebPACKのとNPMモジュールと私のウェブサイトのコードを構築し、次のような問題によりsutmbledています特定のサブ依存バージョン

私のコードは、jQueryの3.1.1を使用していますし、それにいくつかのプラグインを追加します。 また、jQueryのサブ依存関係を持つ依存関係を使用しています< = 2.2.4。 問題は、モジュールが異なるjqueryバージョンを使用しているため、サブ依存関係のオブジェクトが明らかに私のjQueryプラグインを知らないことです。

jQueryの1つのバージョンを使用するために、すべての依存関係(トップレベルとネストされたもの)を強制的に強制することはできますか?したがって、require("jquery")は常にjQuery 3.1.1に解決されます。

依存バージョンを無効にするためにnpm shrinkwrapを使用しようとしましたが、うまくいかないようです。これは私の修正シュリンクラップファイルです:

{ 
    "name": "example", 
    "version": "0.1.0", 
    "dependencies": { 
    "can": { 
     "version": "2.3.27", 
     "from": "[email protected]>=2.3.23 <3.0.0", 
     "resolved": "https://registry.npmjs.org/can/-/can-2.3.27.tgz", 
     "dependencies": { 
     "jquery": { 
      "version": "3.1.1", 
      "from": "^3.1.1" 
     } 
     } 
    } 
    } 
} 

しかし、モジュールの依存関係は、まだjQueryの2.2.4とnpm installプリント代わりにNPMのWebPACKの持つ問題を解決する​​

ソリューションも受け入れられているのです。

答えて

1

私はwebpackエイリアスを使用して解決策を見つけました。

resolve: { 
    root: __dirname, 
    alias: { 
     "jquery": "node_modules/jquery/src/jquery", 
    } 
} 

は今 require('jquery')を使用するすべてのモジュールは、モジュールのpackage.jsonにかかわらず、指定されたバージョンのエイリアスパスの下に位置するjqueryのモジュールをロードします。

このソリューションにはwebpackが必要なので、私は今開いていますが、npmのソリューションがあれば興味があります。

関連する問題