每次我想编译项目时,是否需要运行命令npm install?

时间:2017-07-24 23:06:47

标签: node.js npm-install

我目前正在一家大公司的一个项目上工作,根据我正在研究的项目,每次我想快速启动应用程序时,我都需要先运行命令npm install然后再运行所有额外的编译指令,但问题是运行npm install可能需要很长时间,这就是为什么我想知道每次我对代码进行更改时是否有必要运行此命令,然后想编译并运行它。

npm install究竟做了什么?如果你可以解释我们如何编译和运行java代码,即javac bob.java&& java bob并尝试在此基础上进行类比,这将极大地帮助我理解这个概念。我现在正在考虑的方式是npm install类似javac运行的运行,但我不确定这是否正确。提前致谢!

3 个答案:

答案 0 :(得分:5)

NPM安装

npm install只需读取您的package.json文件,从(通常)https://www.npmjs.com/获取其中列出的软件包,有时会参与这些软件包的构建步骤。

因此,您只需在更改npm install文件时运行package.json,并且需要获取新的依赖项。

请注意,npm install --save <packagename>(或npm install -S <packagename>)会更新您的package.json并在一行中运行npm install

您可以在npm install内查看./node_modules/的结果。

与java

进行比较

如果您尝试完成工作,这可能是一个有用的资源:Getting Started with Node.js for the Java Developer

与java不同,Javascript不是一种编译语言。当您调用javac时, java c ompiler会读入您的所有.java文件,将它们编译为java字节码,然后将它们写入{ {1}}文件,然后可以捆绑在一起.class以供执行。

Javascript没有做到这一点!当您调用.jar时,node foo.js可执行文件会被唤醒,读取node,然后逐行调用它。 Node做了其他很酷的事情,包括维护event loop(允许它运行&#34;异步&#34;,并允许它作为网络服务器非常有效 - 它不会坐等对于要完成的请求,它继续进行队列中的下一个事件。

Node also performs JIT和优化,这些详细信息可以提高其通知正在运行的代码段的性能&#34; hot&#34;。

另请注意foo.js使用V8 javascript engine(也在Google Chrome中使用)。我上面所说的一切都是由V8处理的。

(**从技术上讲,有一个语法检查器在执行之前先运行。但这不是编译步骤!)

答案 1 :(得分:2)

每次要编译时都没有必要执行“npm install”。您只需在更改项目的依赖关系时执行此操作。

答案 2 :(得分:1)

NPM基本上是节点的软件包管理器。它有助于安装各种软件包并解决其各种依赖性。它对您的Node开发有很大帮助。 NPM可以帮助您安装Web开发所需的各种模块,而不仅仅是为您提供一整套您可能永远不需要的功能。 启动应用程序时,它带有package.json文件。该软件包包含您将需要的node_modules列表。每当您输入npm install时,您要做的就是下载该node_modules列表。是的,您必须重新下载模块。 #注意:在您的项目中,您有一个名为package.json的文件。此文件负责跟踪项目的依赖项。这就是为什么您每次必须安装它的原因#。