Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript browserify alias和varName=require(“模块”)之间的垫片差异_Javascript_Jquery_Twitter Bootstrap_Browserify_Browserify Shim - Fatal编程技术网

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
中引用它们,它们就不会被加载两次