Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Node.js web应用程序版本控制签入和共享_Node.js - Fatal编程技术网

Node.js web应用程序版本控制签入和共享

Node.js web应用程序版本控制签入和共享,node.js,Node.js,我知道这不一定是一个“伟大”的问题,但我不知道还能从哪里找到答案。。。(如果有,请在评论中告诉我!) 我正在开发一个web应用程序,它甚至不将Node.js用作web服务器,而是严格地执行构建工具。所以,我使用NPM安装grunt、cssmin、一些测试工具和其他东西。在这一点上,我在安装阶段不时地使用-g('global'),但实际上并不知道有什么更好的方法,因为我是Node的新手,有时说明书会告诉我如何做 现在,我正处于对代码库进行初始签入的阶段。理论上,另一个开发人员可以“检查”并使用它运

我知道这不一定是一个“伟大”的问题,但我不知道还能从哪里找到答案。。。(如果有,请在评论中告诉我!)

我正在开发一个web应用程序,它甚至不将Node.js用作web服务器,而是严格地执行构建工具。所以,我使用NPM安装grunt、cssmin、一些测试工具和其他东西。在这一点上,我在安装阶段不时地使用-g('global'),但实际上并不知道有什么更好的方法,因为我是Node的新手,有时说明书会告诉我如何做

现在,我正处于对代码库进行初始签入的阶段。理论上,另一个开发人员可以“检查”并使用它运行。但这就是我困惑的地方

我怎么。。。概括我所有的Node.js都可以移植吗?理想情况下,其他开发人员只需安装Node(如果他们还没有),在命令行中键入
grunt dist
,它就会为他们构建所有的分发文件。但很明显,除非他们碰巧已经安装了所有合适的工具,否则情况就不会是这样了

我认为这可能是我今后必须做的事情,但我想了解一些关于最佳实践的见解或建议:

  • 安装节点(当然!)
  • NPM安装所需的软件包(如 grunt),而不是使用全局标志,而是使用--save
  • 签入应用程序文件夹及其内容
  • 那么下一个开发者将:

  • 安装节点(当然!)
  • 从源代码管理中检查模块
  • 导航到签出文件夹并
    npm install
    ,从理论上讲,它应该用本地实例Node.js“注册”依赖项?(这是我不确定的部分)
  • 利润。他们现在可以执行类似于
    grunt dist
    的操作,并且grunt任务应该按预期运行

  • 这听起来合理吗?有没有其他我遗漏的因素?

    你说得对,请注意下一个开发人员的步骤3,他不是在
    npm install
    中注册依赖项,他实际上是在安装所有依赖项。我的意思是,他正在将您已经注册到
    package.json
    中的所有所需文件下载到
    npm_modules
    文件夹中。您还应该记住将您的
    node\u modules
    文件夹添加到
    .gitignore
    文件中(或者将其添加到您使用的任何源代码管理的忽略文件列表中)。谢谢,Gepser。我假设我将签入node_模块,这样开发者就可以保证使用与签入的相同的版本。这是一个错误的假设吗?也就是说,node会使用本地node_模块而不是下载它们吗?有趣的是,您可以查看
    node_模块
    文件夹。通常,
    package.json
    文件会保存您需要的软件包的确切版本,您只需安装
    npm即可。npm安装所做的一切就是将依赖项下载到
    node\u modules
    文件夹中,因此如果您决定将其签入,其他开发人员不需要
    npm安装
    。也许您想阅读此答案(2天前)关于全局和本地包如何工作@Patosai,如果其他开发人员能够获得确切的版本,这实际上让我重新考虑!我一直在想象他们会得到“最新”版本。此时签入本地存储库的唯一其他原因是,您不必依赖于存储库保持可用(就连接性以及让包保持在线而言)。