2016-11-23 3 views
0

Я пытаюсь переключиться с RequireJs на webpack, чтобы иметь дело с загрузкой js, обработкой sass & других подобных вещей.Как определить зависимости зависимостей в webpack?

В RequireJs это можно указать зависимости для модулей

// file.js 
require(['moduleA','moduleB'],function(A,B) { 
    ... 
} 

И я хочу, чтобы указать, что ModuleA требует JQuery, например

// requirejs.config.js 
require.config({ 
    ... 
    shim:{ 
     moduleA:{ 
      deps:['jquery'] 
     } 
    } 
}) 

Я пытаюсь найти способ, чтобы сделать то же самое вещь в webpack

// webpack.config.js 
module.exports = { 
    entry: toObject(glob.sync('src/**/*.js*')), 
    output: { 
     path: './bin', 
     filename: '[name].js' 
    }, 
    resolve: { 
     alias: { 
      'moduleA': '/path/to/moduleA', 
      ... 
     } 
    } 
}; 

function toObject(paths) { 
    // I return an object of paths 
} 

Но я не могу найти способ указать, что модуль eA нуждается в другом модуле!

У кого-нибудь есть ключ?

ответ

1

Вам не нужно. Вы просто require() независимо от того, какой модуль вам нужен, и он будет доступен.

Причина, по которой вам необходимо сделать это с помощью RequireJS, заключается в том, что RequireJS является асинхронным, модули загружаются асинхронно, и, следовательно, ему необходимо знать, что загружать в первую очередь. Webpack (и CommonJS в целом) является синхронным. К моменту ввода модуля все уже загружено.

+0

Thak вам за ответ. Если я понимаю, это означает, что если для моего модуля А требуется модуль Б, для которого требуется модуль С, мне просто нужно потребовать модуль С в модуле Б и модуль В в модуле А? – jiboulex

+0

Это точно. –

+0

Но если я требую ('bootstrap/js/collapse'); и сбой требует JQuery, я не могу редактировать файлы своих продавцов, чтобы указать, что bootstrap js нуждается в jquery, я получил «jsone.js: 10515 Uncaught ReferenceError: jQuery не определен (...)» – jiboulex

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