2016-05-09 2 views
1

В моей компании у нас есть значительная база кода AMD RequireJS, и я пытаюсь использовать webpack для ее частичного соединения. Вот что архитектура выглядит следующим образом:Пакет Webpack с именем requirejs modules

somedir 
│ app.js 
│ 
└───anotherdir 
    | 
    ├─── module1 
    │  file1.js 
    │  file2.js 
    │ 
    ├─── module2 
    │  file3.js 
    │ 
    └─── module3 
      file4.js 
      file5.js 
      file6.js 

Каждый файл записывается так:

define('ATAG/MODULE/ID, ['somedeps'], function (somedeps) {}); 

Так, например file1.js может выглядеть

define('ATAG/module1/file1, [], function() {}); 

И у нас есть конфиг RequireJS который отображает ATAG на anotherdir, и у нас, возможно, есть еще несколько конфигураций для разных тегов.

Теперь я пытаюсь создать пакет из app.js с помощью webpack, но я не знаю, как воспроизвести поведение, которое у нас есть, с require.config({ paths: { ATAG: 'anotherdir' } }).

До сих пор мои попытки с resolve.alias не были успешными.

Возможно ли достичь чего-то подобного с помощью webpack на основе нашего использования RequireJS (не требующего относительных путей)?

спасибо.

ответ

0

Вы были на правильном пути с resolve.alias:

// foo.js 
var a = require('ATAG'); // resolved to anotherdir/index.js 
var b = require('ATAG/bar'); // resolved to anotherdir/bar.js 

// webpack.config.js 
const path = require('path'); 

module.exports = { 
    entry: './foo', 
    output: { 
     filename: 'bundle.js' 
    }, 
    resolve: { 
     alias: { 
      ATAG: path.join(__dirname, '/anotherdir') 
     } 
    } 
}; 
+0

Большое спасибо за ваш ответ. Кажется, он работал! – kalnic29

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