Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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项目_Javascript_Node.js_Gruntjs_Npm - Fatal编程技术网

拆分javascript项目

拆分javascript项目,javascript,node.js,gruntjs,npm,Javascript,Node.js,Gruntjs,Npm,我越来越多地看到大型javascript项目被拆分成单独的文件,然后编译成单个发行版。我想试试这个工作流程。我一直在研究Node.js、npm和Grunt,但这些都是非常陡峭的学习曲线,包含了许多我目前不感兴趣的其他概念 有人能推荐一些关于此工作流最佳实践的文献吗 如果我将代码拆分,我如何指示应该如何将其映射到一起 如何将项目编译成单个发行版 如何为自定义构建提供选项?以jQuery为例。在一个典型的情况下,你会有几个不同的文件组成一个项目;CSS文件、HTML文件、JavaScript文件、j

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

有人能推荐一些关于此工作流最佳实践的文献吗

如果我将代码拆分,我如何指示应该如何将其映射到一起

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


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

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

您可以运行一个简单的测试来了解这一切是如何工作的,即创建两个单独的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>
JS2.js

function fromJS1File() {
    var message = "Hello World";
    return message;
}
alert(fromJS1File());
当您运行这个程序时,您会收到一条警告消息,说“Hello World”,现在您可以看到JS2.js实际上是如何调用代码表单JS1.js的

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

至于“映射”部分,它完全取决于您的操作流程。有时存在通用或全局文件,而其他文件则更细粒度。最好的经验法则是回到jQuery文件示例。如果它适用于所有JS文件,请确保先加载它,以便其他代码文件可以利用它