Webpack包名为requirejs modules

时间:2016-05-09 15:48:50

标签: javascript requirejs webpack

在我的公司,我们有一个重要的AMD 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,我们可能会为不同的标签添加更多配置。

现在我正在尝试使用webpack从app.js创建一个包,但我不知道如何复制require.config({ paths: { ATAG: 'anotherdir' } })的行为。

到目前为止,我对resolve.alias的尝试都没有成功。

根据我们对RequireJS的使用(不需要相对路径),甚至可以使用webpack实现这样的功能吗?

谢谢。

1 个答案:

答案 0 :(得分: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')
        }
    }
};