使用Webpack加载AMD模块

时间:2017-09-21 15:44:59

标签: webpack requirejs amd

我有使用AMD的依赖项,我想使用webpack导入它。依赖项定义了几个命名的AMD模块,我希望能够选择webpack在导入时应考虑的入口点。似乎webpack立即执行所有已定义模块的工厂,而不是将其延迟到第一次导入。

简化示例:

webpack.config.js

const path = require("path");

module.exports = {
  entry: "./src/index.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, "public")
  }
};

index.js

console.log("Script execution starts");
const testAmdModule = require("./amd");
console.log("testAmdModule is loaded");

amd.js

define("test.amd.module", [], () => {
  console.log("test.amd.module factory called");
  return () => {
    console.log("test.amd.module instance called");
  };
});

在构建并执行bundle.js之后,我希望看到以下输出:

Script execution starts
testAmdModule is loaded

但我得到以下输出:

Script execution starts
test.amd.module factory called
testAmdModule is loaded

如果我使用RequireJS来执行amd.js中的代码,那么什么都不会发生,这就是我所期望的。

如何告诉webpack amd包的入口点?在上面的例子中,它将是“test.amd.module”。

谢谢, 诺贝特

0 个答案:

没有答案