tru*_*ktr 6 javascript amd requirejs webpack webpack-2
有没有办法从使用Webpack编译的模块中加载AMD模块(在网络运行时)?
fe,我有
import Blah from './Blah'
import AmdModule from './AmdModule'
Run Code Online (Sandbox Code Playgroud)
其中AmdModule有一个define()调用的AMD模块在哪里。我不希望webpack编译该文件,也不希望webpack将其包含在捆绑软件中。也许该文件甚至在编译时都不存在,但将存在于资产服务器上。我希望在运行时通过网络加载该文件。
有什么方法可以使Webpack做到这种事情吗?我当时想也许用RequireJS导入该文件,但随后它破坏了Webpack模块,因为没有办法等待模块加载,然后在webpack模块中异步导出某些内容。
理想情况下,我希望webpack在执行需要它的模块之前,先从网络中加载这些文件。
这样的事情可能吗?
根据需要,无法编译要通过网络加载的文件,它必须保持通过网络加载的AMD define()模块,并且保持不变,无需源映射。
Webpack 可以指定不同的方法(AMD 和 CommonJs)来按需加载代码。
以下是webpack 指南的摘录:
澄清一个常见的误解:代码拆分不仅仅是将公共代码提取到共享块中。更值得注意的功能是代码拆分可用于将代码拆分为按需加载的块。
关于如何配置外部的公开方式,您可以查看此示例(webpack/examples/externals):
module.exports = {
output: {
libraryTarget: "umd"
},
externals: [
"add",
{
"subtract": {
root: "subtract",
commonjs2: "./subtract",
commonjs: ["./math", "subtract"],
amd: "subtract"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2995 次 |
| 最近记录: |