拆分javascript项目

时间:2014-12-10 02:10:44

标签: javascript node.js gruntjs npm

我越来越多地将大型javascript项目拆分为单独的文件,然后编译成单个发行版。我想尝试一下这个工作流程。我一直在研究Node.js,npm和Grunt,但这些都是非常陡峭的学习曲线,并且包含了我目前不感兴趣的许多其他概念。

有人可以推荐一些关于这些工作流程的最佳实践的文献吗?

如果我拆分我的代码,我如何指出应该如何映射?

如何将项目编译为单个发行版?

如何为自定义构建提供选项?

1 个答案:

答案 0 :(得分:0)

我们以jQuery为例。在典型情况下,您将拥有构成项目的几个不同文件; CSS文件,HTML文件,JavaScript文件,jQuery文件。所有这些文件都将构成一个项目。那么,他们是如何流动的?好吧,如果您的自定义JavaScript文件正在利用jQuery,那么在HTML中,您需要首先加载jQuery文件,然后加载JavaScript文件。原因是因为如果你先加载JavaScript文件,它还没有jQuery的代码,所以它不起作用。而当您首先加载jQuery时,您正在加载所有这些引用,以便它们可以在其他文件中使用。

您可以运行一个简单的测试来查看这一切是如何工作的,即创建2个单独的JavaScript文件。我们称之为JS1.js和JS2.js。

HTML文件

<!DOCTYPE html />
    <html>
        <head>
            <link rel="stylesheet" href="theCSS.css" />
        </head>
        <body>
            <script type="text/javascript" src="JS1.js"></script>
            <script type="text/javascript" src="JS2.js"></script>
        </body>
    </html>

<强> JS1.js

function fromJS1File() {
    var message = "Hello World";
    return message;
}

<强> JS2.js

alert(fromJS1File());

当你运行它时,你会得到一条警告信息,说'Hello World'现在,你可以看到JS2.js实际上是如何调用JS1.js的代码形式

现在,尝试重新组织HTML代码中的脚本标记,以便首先加载JS2.js。您将看到没有任何反应或者您将收到错误/未定义的消息。

至于“映射”部分,这一切都取决于你的操作流程。有时会有共同或全局文件,而其他文件则更精细。最好的经验法则是回到jQuery文件示例。如果它适用于所有JS文件,请确保首先加载,以便其他代码文件可以利用它。