我的html文档中包含的javascript文件不仅仅是外部的,我希望在不拥挤的情况下合并。有没有办法合并我的js文件?例如;
我的档案:
a.js
b.js
c.js
d.js
我想要;
all.js
答案 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
操作会做你想要的,但是,在某个阶段你可能会想要更多权利吗?
Grunt和Grunt-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 build
,npm
将解析package.json
并使用bash执行脚本(实际上是sh)。
请注意,这些是构建系统,还有很多其他系统。
还有其他打包器(您可能会将其用作构建系统的一部分,但对于某些项目,他们 您是整个构建系统)但是它们比您的需求更复杂,对于您而言自己的研究browserify,webpack和jspm都非常出色(考虑到AMD模块丢失,所以require.js可能不值得你花时间),尽管这个领域变得拥挤。其中每个都是非常强大的模块化工具,但它们需要对代码的结构进行一些更改。如果你认真对待模块化,那么他们值得你花时间学习。
在一个稍微不同的切线上,有一些关于一个大文件是否实际上比一些较小的脚本更有益的讨论。在许多情况下,简单地提供一些小文件实际上更快,并且可能更容易,尽管将代码粉碎在一起可能有其他好处。目前,最好至少连接到较少的HTTP请求,但这种性能要求正在消失。
答案 3 :(得分:-1)