1.1 npm

如何全局安装一个 node 应用?

npm install -g

package.json 有什么作用?

  1. 配合npm使用,用来定义模块包,主要包括以下几点:
  2. 定义模块包的依赖管理[devDependencies/dependencies]
  3. 定义包的基本描述信息[description、name、version等]
  4. 定义包的使用方式[npm scripts]
  5. 定义包的主程序入口模块标示[main]
  6. 定义包的可执行文件地址[bin]
  7. 定义包的bug、people、issue、license等其他信息

npm官方对package.json的描述

npm install --save app 与 npm install --save-dev app有什么区别?

相同点:

  • 都会在项目的 node_modules 目录下安装 app

不同点:

  • package.json 增量写入依赖的时候
  • 分别是在 dependencies 和 devDependencies 字段下,添加app:"版本号"
  • npm install will install both "dependencies" and "devDependencies" npm install --production will only install "dependencies" npm install --dev will only install "devDependencies"

npm3与 npm2相比有什么改进?yarn和 npm 相比有什么优势?

  • npm3 和 npm2 在安装模块的时候,策略上前者优于后者。
  • npm2 是纯粹的不共享包原则
  • npm3 的优化点在于对于以字母序安装 npm 包的时候,优先安装在 node_modules 第一层级目录
  • 这样做的好处是如果后续包有相关依赖则不需要重复安装

nodule_modules的查找路径是怎样的?

  • 如果 require('模块id'),这个模块 id 不是 nodejs 的核心模块(比如http/path等)
  • 并且模块标示不以路径开始('.,../,/')
  • 则 nodejs 会不断的在上一级目录递归查找 node_modules 目录
  • 如果查找完所有的 module.paths 数组,都找不到改模块 id,则抛错

nodejs官方说明

CommonJS规范

愿景是JS能够在任何地方运行 规范涵盖了模块、二进制、buffer、I/O、网关等。Node借鉴commonJS实现了一套简易的模块系统。

  1. 模块引用 var math = require('math')
  2. 模块定义 exports.add = function(){ console.log('math') }
  3. 模块标示 小驼峰命名字符串、. 或者..路径

HTTP 模块

你可能感兴趣的:(1.1 npm)