5

我正在尝试合并我所有的插件,以便我可以改变:

<html>
    <head>
    </head>
    <body>    
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="js/plugin1.js"></script>
        <script src="js/plugin2.js"></script>
        <script src="js/plugin3.js"></script>
        <script src="js/plugin4.js"></script>
    </body>
</html>

对此:

<html>
    <head>
    </head>
    <body>    
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="js/plugins.min.js"></script>
    </body>
</html>

主要思想是有一个工具来“自动导入”到我的 plugins.js 文件中,我的网站需要的所有插件,并在编译时缩小它们。我一直在使用 Google Closure(编译器的可下载 Java 版本)进行测试,我想出了如何缩小文件,但我无法导入外部文件。所以我想问你是否可以告诉我 Google Closure 是否是我正在寻找的工具,或者我是否应该使用其他工具或方法。

对于“自动导入”,我的意思是:

插件/HELLO.JS

function hello(name) {
    alert('Hello, ' + name);
}

插件.JS

@import hello.js
hello('New user');

我希望我说清楚了,如果我把我的英语搞砸了,我很抱歉。

谢谢!!

4

4 回答 4

5

我问了自己同样的问题,但没有找到可以接受的答案。加入许多文件的唯一方法是在命令行中放置多个“--js”参数:

java -jar compiler.jar --js 1.js --js 2.js --js 3.js --js_output_file all.js

我尝试了这样的 put 行(在 Closure Compiler 服务 UI 中使用):

// ==ClosureCompiler==
// @code_url 1.js
// @code_url 2.js
// @code_url 3.js
// ==/ClosureCompiler==

...在“main.js”中并编译它 - 没有效果。:(

于 2013-04-05T21:23:37.000 回答
2

使用 RequireJs 及其优化可能性。看看这里:http ://requirejs.org/docs/optimization.html

于 2013-03-31T10:06:45.343 回答
1

Closure-compiler 可以完全满足您的要求,但只能使用 Closure-library 代码,因为它使用goog.require调用。使用 jQuery 代码,它可以做的最好的事情是将所有插件一起编译到一个文件中,但它不会考虑实际使用情况。

不幸的是,我不知道有什么东西可以对一般代码执行此操作。

注意:这不是该问题的公认答案。这个问题专门询问了 Closure-compiler,我想确保至少在某个地方指出编译器不会按预期工作。

于 2013-04-02T13:33:49.693 回答
0

你可能想看看require.js

于 2013-03-31T09:36:19.183 回答