NPM基础知识和本地安装?

时间:2014-02-04 19:11:57

标签: node.js npm ghost-blog

我不是常规节点用户,所以我很抱歉这是一个愚蠢的新手问题,但我还没有找到任何关于此的明确文档,而且我的微弱新手节点技能不让我深入研究我。

我正在跟随these instructions一起安装Ghost博客系统(使用NodeJS构建的系统)。

告诉我在刚下载的软件包文件夹中打开终端窗口后,说明中包含以下行

  

在新终端标签中输入npm install --production

这让我很困惑。我对npm的理解是它是一个包管理器,就像p​​erl的CPAN

  1. 从互联网上获取包

  2. 将它们安装到我的本地节点系统

  3. 这显然不是上面发生的事情,但我不知道当我运行该命令时 发生了什么,并且由于我没有使用NodeJS人群,我不知道该向谁发送问。

    我想知道NPM在做什么。具体问题

    • 当我运行npm install时,看起来它正在下载一些软件包(控制台中有很多npm http GET)。 NPM如何知道下载什么?

    • 将这些模块文件下载到哪里? npm如何知道下载文件的位置?

    • --production旗帜对NPM的行为有什么影响?

    很高兴有特定的答案,或者一个元答案,指出我可以在哪里学习npm如何使用(似乎是)应用程序安装(相对于系统安装,这是我通常的方式想一想)

2 个答案:

答案 0 :(得分:2)

npm有几种不同的安装模式。在模块内(使用package.json文件)npm install安装dependencies文件的devDependenciespackage.json字段中列出的依赖项。安装意味着下载模块的文件,放在node_modules文件夹中,然后npm installed自己,(但只有dependencies)放置模块自己的node_modules文件夹。这将继续,直到安装所需的一切。使用npm ls查看已安装软件包的树。

大多数情况下,这就是你想要的,因为在模块中运行npm install就是你在开发它时会做的事情,你会想要运行测试等(这就是{{ 1}}是为了。

有时候,您将编写一个使用模块的服务,但不一定会被视为一个(不是devDependencies'd)。鬼是这样的情况。在这些情况下,您需要require,只需安装npm install --production,然后保留dependencies

答案 1 :(得分:1)

  

当我运行npm install时,看起来它正在下载一些   包(在控制台中有很多npm http GET)。 NPM如何知道什么   下载?

它读取当前目录中的package.json配置文件。

  

将这些模块文件下载到哪里? npm如何知道在哪里下载文件?

它将在当前目录中创建并填充node_modules目录。文件结构设计为npm / node,并且(大部分)故意不可配置。

  

- 生产标志对NPM的行为有什么影响?

只安装dependencies devDependencies package.json,{{1}},意思是“给我运行此应用所需的内容,但我不打算在此应用上进行开发,我不需要dev-only东西“。

npmjs.org has some docs, FAQ, and man pages,虽然它们大多缺乏基本的介绍材料,但它们还不错。