2016-05-09 74 views
1

在我的公司,我们有一个重要的AMD RequireJS代码库,我试图用webpack捆绑它。 这里是架构的样子:名为requirejs模块的Webpack软件包

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还没有成功。

基于我们使用RequireJS(不需要相对路径),使用webpack甚至可以实现类似这样的事情吗?

谢谢。

回答

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