如何组合所有js文件?

时间:2015-12-11 08:11:26

标签: javascript css

我的html文档中包含的javascript文件不仅仅是外部的,我希望在不拥挤的情况下合并。有没有办法合并我的js文件?例如;

我的档案:

a.js
b.js
c.js
d.js

我想要;

all.js

4 个答案:

答案 0 :(得分:1)

看看requirejs.org,特别是看看r.js(http://requirejs.org/docs/optimization.html

答案 1 :(得分:0)

a.js

var i=0;
function fun1()
{
...
}

b.js

var k=0;
function fun2()
{
...
}

all.js只需复制,粘贴如 css

var i=0;
function fun1()
{
...
}
var k=0;
function fun2()
{
...
}
当你在eventlistener中特别写整个脚本时,请注意分号和括号,特别是'DOMContentLoaded'

document.addEventlistener('DOMContentloaed',function()
{

//whole big script

}
);

而不是 使用

document.addEventlistener('DOMContentloaed',some_function);

var some_function = function(){*bla bla bla*};

答案 2 :(得分:0)

一个简单的bash cat操作会做你想要的,但是,在某个阶段你可能会想要更多权利吗?

GruntGrunt-contrib-concat是一个很好的首发,但你很快意识到咕噜声并不是特别好。要总结用法,请创建gruntfile,安装一些依赖项(即安装grunt及其命令行界面,这很简单)并从项目根目录运行grunt。然后它解析gruntfile以找出你想要它做什么,并且它做到了。非常简单,简单就是好。

接下来是Gulp,这是一个很好的使用流的构建系统,因此,稍微复杂一点(更好,更容易和更强大,但是,流可能会让人感到困惑)。 Gulp以同样的方式工作,只是解析gulpfile的指令。对于concat操作,实际的gulp命令很简单:

gulp.src( '*.js' )
  .pipe( gulp.dest( 'all.js' )

.src.dest之间,您可以通过多种转换来管理文件,例如缩小,转换,通知 - 插件和模块的列表令人眼花缭乱(因为它适用于grunt)。

但是,如果您是节点和npm的粉丝(您可能应该这样),那么您可以使用npm scripts来创建构建系统。 npm是节点包管理器,需要package.json提供有关如何工作的一些线索。该json规范的一部分是scripts

"scripts": {
  "build" : "cat *.js > all.js"
}

然后,您可以从命令行使用npm run buildnpm将解析package.json并使用bash执行脚本(实际上是sh)。

请注意,这些是构建系统,还有很多其他系统。

还有其他打包器(您可能会将其用作构建系统的一部分,但对于某些项目,他们 您是整个构建系统)但是它们比您的需求更复杂,对于您而言自己的研究browserifywebpackjspm都非常出色(考虑到AMD模块丢失,所以require.js可能不值得你花时间),尽管这个领域变得拥挤。其中每个都是非常强大的模块化工具,但它们需要对代码的结构进行一些更改。如果你认真对待模块化,那么他们值得你花时间学习。

在一个稍微不同的切线上,有一些关于一个大文件是否实际上比一些较小的脚本更有益的讨论。在许多情况下,简单地提供一些小文件实际上更快,并且可能更容易,尽管将代码粉碎在一起可能有其他好处。目前,最好至少连接到较少的HTTP请求,但这种性能要求正在消失。

答案 3 :(得分:-1)

可能会有所帮助:https://github.com/mrclay/minify

OR

创建文件all.js并粘贴a.js,b.js,c.js,d.js文件代码