2016-11-30 6 views
0

Я строю свой сайт код с WebPack и НПМ модулей и sutmbled на следующей задаче:зависимость силы использовать конкретные суб версии зависимостей

Мой код использует JQuery 3.1.1 и добавляет некоторые плагины к нему. Я также использую зависимость, которая имеет sub-depencency на jQuery < = 2.2.4. Проблема в том, что объекты подзависимости, очевидно, не знают о моих плагинах jQuery, так как модуль использует другую версию jquery.

Как заставить все зависимости (верхний уровень и вложенный) использовать одну версию jQuery? Так что 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 ERR! invalid: [email protected] /path/.../can/node_modules/jquery

решения для решения проблемы с WebPack вместо НПМ также приняты.

ответ

1

Я сам нашел решение, используя псевдоним webpack.

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

Теперь каждый модуль, который использует require('jquery') загружает модуль Jquery, расположенный под псевдонимом пути, независимо от указанной версии в package.json модуля.

Я оставляю вопрос открытым, так как для этого решения требуется веб-пакет, и мне было бы интересно, если будет только решение npm.

Смежные вопросы