Javascript browserify alias和varName=require(“模块”)之间的垫片差异
我正在使用Javascript browserify alias和varName=require(“模块”)之间的垫片差异,javascript,jquery,twitter-bootstrap,browserify,browserify-shim,Javascript,Jquery,Twitter Bootstrap,Browserify,Browserify Shim,我正在使用browersify shim将jquery、bootstrap和我的自定义js文件捆绑到最后一个包中 我的自定义js文件不依赖于jQuery,尽管bootstrap依赖于它 我有以下package.json "browser" : { "jquery": "path/to/jquery", "bootstrap": "path/to/bootstrap" }, "browserify": { "transform": [ "browserify-shim" ]
browersify shim
将jquery、bootstrap和我的自定义js文件捆绑到最后一个包中
我的自定义js文件不依赖于jQuery
,尽管bootstrap
依赖于它
我有以下package.json
"browser" : {
"jquery": "path/to/jquery",
"bootstrap": "path/to/bootstrap"
},
"browserify": {
"transform": [ "browserify-shim" ]
},
"browserify-shim": {
"jquery": "$",
"bootstrap": {"depends" : "jquery:jQuery"}
},
现在,在脚本文件中,我必须执行以下操作:
require('jquery');
require('bootstrap');
在package.json
中向“jquery”添加别名与在var窗口中添加别名有什么区别。$=require('jquery')代码>
在一些地方,我看到人们同时做这两件事,难道一件就够了吗
其次,为什么我需要显式地要求jQuery
和bootstrap
,即使我的自定义js文件都不依赖它。有没有办法告诉browserify shim
把所有东西都打包到package.json
,反正我要告诉所有的依赖项和别名。为什么要重复使用脚本文件中的每个模块。第一个问题:
在package.json中向“jquery”添加别名与在var窗口中添加别名有区别吗。$=require('jquery')
人们之所以这样做,是因为他们需要jQuery出现在bundle.js之外。例如,您可能直接在index.html中有一个$(document).ready()
处理程序,在这种情况下,您需要在窗口
对象上提供jQuery。如果在bundle.js
之外没有任何jQuery代码,那么这是不必要的,您可以使用var$=require('jQuery')在bundle.js
中根据需要编写代码>
你的第二个问题使我认为上述情况可能是这样的。答案是您完全可以在bundle.js
之外加载引导和jQuery
这里一个好的解决方案是,通过
标记,以通常的方式将它们添加到包之外。然后,如果您在bundle中需要它们,您可以这样做,如果您在bundle.js
中引用它们,它们就不会被加载两次