Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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文件合并到一个JS文件中_Javascript_Jquery_Jquery Ui - Fatal编程技术网

将多个JavaScript文件合并到一个JS文件中

将多个JavaScript文件合并到一个JS文件中,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我在web应用程序中使用jquery,需要将更多jquery脚本文件加载到单个页面中 Google建议我将所有jquery脚本文件合并到一个文件中 我如何才能做到这一点?试试谷歌闭包编译器: 您可以按照猩猩云的建议使用闭包编译器。值得指出的是,您实际上不需要编译/缩小JavaScript,应该可以简单地将JavaScript文本文件连接到单个文本文件中。只需按照页面中通常包含的顺序加入它们。您可以通过 a。手动:将所有Javascript文件复制到一个文件中,在其上运行压缩器(可选但推荐),然

我在web应用程序中使用jquery,需要将更多jquery脚本文件加载到单个页面中

Google建议我将所有jquery脚本文件合并到一个文件中


我如何才能做到这一点?

试试谷歌闭包编译器:


您可以按照猩猩云的建议使用闭包编译器。值得指出的是,您实际上不需要编译/缩小JavaScript,应该可以简单地将JavaScript文本文件连接到单个文本文件中。只需按照页面中通常包含的顺序加入它们。

您可以通过

  • a。手动:将所有Javascript文件复制到一个文件中,在其上运行压缩器(可选但推荐),然后上传到服务器并链接到该文件
  • b。使用PHP:只需创建一个包含所有JS文件的数组,然后
    将它们全部包含进去,并输出到
    标记中

只需组合文本文件,然后使用类似的方法

使用命令
cat*.js>main.js
可以轻松组合文件,然后可以使用
java-jar-yuicompressor-x.y.z.jar-o main.min.js main.js
通过YUI压缩程序运行main.js

2014年8月更新


我现在已经迁移到使用javascript连接和压缩,就像使用各种插件和一些最小配置一样,您可以进行设置依赖项、编译coffeescript等操作,以及压缩JS。

这可能需要一些努力,但您可以从codeplex下载我的开源wiki项目:

它包含一个使用该项目的CompressJavascript项目(和CompressCSS)

代码应该是不言自明的,但它使组合和压缩文件有点简单——无论如何,对我来说:)


ShuttleWiki项目展示了如何在构建后事件中使用它。

脚本分组会产生相反的效果,您应该使用类似于或的方式并行加载它们。在linux上,您可以使用简单的shell脚本将多个javascript文件合并到一个文件中。它使用闭包编译器在线服务,因此生成的脚本也被有效压缩

$ ./compressJS.sh some-script.js another-sctipt.js onemore.js

如果您运行的是PHP,我建议您这样做,因为它可以动态地结合和缩小CSS和JS。一旦配置完毕,就可以正常工作,它会处理好一切。

将此脚本复制到记事本并另存为.vbs文件。 在此脚本上拖放.js文件(&D)

附言。 这将只在windows上工作

set objArgs=Wscript.Arguments
设置objFso=CreateObject(“Scripting.FileSystemObject”)
content=“”
'遍历所有传递的参数
对于i=0到objArgs.count
出错时继续下一步
'尝试将参数视为文件夹
Set folder=objFso.GetFolder(objArgs(i))
'如果我们得到一个错误,我们知道它是一个文件
如果错误号为0,则
'这不是文件夹,请视为文件
内容=内容和读取文件(objArgs(i))
其他的
“没有错吗?这是一个文件夹,请进行相应的处理
对于文件夹.Files中的每个文件
content=content&ReadFile(file.path)
下一个
如果结束
错误转到0
下一个
'获取系统临时文件夹路径
设置tempFolderPath=objFso.GetSpecialFolder(2)
'生成用于临时文件的随机文件名
strTempFileName=objFso.GetTempName
'在临时文件夹中创建临时文件
设置objTempFile=tempFolderPath.CreateTextFile(strTempFileName)
'将内容从JavaScript文件写入临时文件
objTempFile.WriteLine(内容)
objTempFile.Close
'在记事本中打开临时文件
设置objShell=CreateObject(“WScript.Shell”)
运行(“Notepad.exe”&tempFolderPath&“\”&strTempFileName)
函数ReadFile(strFilePath)
“如果文件路径以“.js”结尾,我们知道它是JavaScript文件
如果Right(strFilePath,3)=“.js”,则
设置objFile=objFso.OpenTextFile(strFilePath,1,false)
'读取JavaScript文件的全部内容并将其作为字符串返回
ReadFile=objFile.ReadAll&vbNewLine
objFile.Close
其他的
'返回空字符串
ReadFile=“”
如果结束
端函数

我通常把它放在
生成文件上

# All .js compiled into a single one.
compiled=./path/of/js/main.js

compile:
    @find ./path/of/js -type f -name "*.js" | xargs cat > $(compiled)
然后你跑:

make compile

我希望它能有所帮助。

你可以使用我制作的脚本。不过,您需要JRuby来运行此功能。 (组合器)


区别在于它监视javascript中的文件更改,并将其自动组合到您选择的脚本中。因此,无需在每次测试时手动“构建”javascript。希望它能帮助您,我目前正在使用它。

我在Linux上使用这个shell脚本

与上面的脚本相比,它的优点是使用非常简单,一个很大的优点是,您可以在输入文本文件中列出要合并的js文件,而不是在命令行中列出,因此您的列表是可重用的,您不必每次要合并文件时都键入它。它非常方便,因为每次您想要投入生产时都会重复此步骤。您还可以在列表中注释不希望合并的文件。您最可能键入的命令行是:

$ mergejs js_files_list.txt output.js
如果还希望压缩生成的合并文件:

$ mergejs -c js_files_list.txt output.js
这将创建
output-min.js
并由Google的闭包编译器缩小。或:

$ mergejs -c js_files_list.txt output.js output.minified.js
如果要为名为
output.minified.js的缩小文件指定一个特定的名称

我发现它对一个简单的网站非常有用。

您可以使用KjsCompiler:
很酷的依赖关系管理

是的,很好。如果您或插件作者没有跟上良好的语法,或者您正在尝试调试,那么闭包编译器可能会很棘手。但是如果你在最基本的模式下使用它,它会很有帮助。我个人非常喜欢Dojo,并将其构建系统用于Dojo项目,将所有内容保存在一个文件中确实很有帮助。但它只对部署有用,而不适用于d