2016-05-09 8 views
1

In meiner Firma haben wir eine signifikante AMD RequireJS-Code-Basis und ich versuche, Webpack zu verwenden, um einiges davon zu bündeln. Hier ist, was die Architektur wie folgt aussieht:Webpack-Paket namens requirejs-Module

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

Jede Datei wie das geschrieben wird:

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

So zum Beispiel file1.js wie

aussehen könnte
define('ATAG/module1/file1, [], function() {}); 

Und wir haben eine RequireJS Config welche Karten ATAG bis anotherdir und wir haben möglicherweise mehr Konfiguration für verschiedene Tags.

Jetzt versuche ich ein Bündel von app.js mit Webpack zu erstellen, aber ich habe keine Ahnung, wie das Verhalten, das wir mit require.config({ paths: { ATAG: 'anotherdir' } }) haben, zu replizieren.

Bisher waren meine Versuche mit resolve.alias nicht erfolgreich.

Ist es aufgrund der Verwendung von RequireJS überhaupt möglich, so etwas mit dem Webpack zu erreichen (ohne dass relative Pfade erforderlich sind)?

Vielen Dank.

Antwort

0

Sie waren auf dem richtigen Weg mit 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

Ihnen sehr für Ihre Antwort danken. Es scheint zu funktionieren! – kalnic29