我正在探索使用的想法Webpack http://webpack.github.io/ with 骨干网.js http://backbonejs.org/.
我已经遵循了快速入门指南,并且对 Webpack 的工作原理有了大致的了解,但我不清楚如何加载 jquery/backbone/underscore 等依赖库。
它们是否应该从外部加载<script>
或者这是 Webpack 可以像 RequireJS 的 shim 一样处理的东西?
根据webpack 文档:匀场模块 http://webpack.github.io/docs/shimming-modules.html, ProvidePlugin
and externals
似乎与此有关(也是如此bundle!
加载器某处)但我不知道何时使用哪个。
Thanks
两者都是可能的:您可以包含带有<script>
(即使用 CDN 中的库)或将它们包含到生成的包中。
如果您通过加载它<script>
标签,您可以使用externals
允许写入的选项require(...)
在你的模块中。
来自 CDN 的库示例:
<script src="https://code.jquery.com/jquery-git2.min.js"></script>
// the artifial module "jquery" exports the global var "jQuery"
externals: { jquery: "jQuery" }
// inside any module
var $ = require("jquery");
捆绑包中包含库的示例:
copy `jquery-git2.min.js` to your local filesystem
// make "jquery" resolve to your local copy of the library
// i. e. through the resolve.alias option
resolve: { alias: { jquery: "/path/to/jquery-git2.min.js" } }
// inside any module
var $ = require("jquery");
The ProvidePlugin
可以将模块映射到(自由)变量。所以你可以定义:“每次我使用(自由)变量xyz
在你(webpack)应该设置的模块内xyz
to require("abc")
."
没有的例子ProvidePlugin
:
// You need to require underscore before you can use it
var _ = require("underscore");
_.size(...);
示例为ProvidePlugin
:
plugins: [
new webpack.ProvidePlugin({
"_": "underscore"
})
]
// If you use "_", underscore is automatically required
_.size(...)
Summary:
- CDN 中的库:使用
<script>
标签和externals
option
- 来自文件系统的库:将库包含在捆绑包中。
(也许修改
resolve
查找库的选项)
-
externals
:使全局变量可用作模块
-
ProvidePlugin
:使模块可作为模块内的自由变量
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)