1.1 npm

作者: 那一瞬的光和永远 | 来源:发表于2018-11-08 23:35 被阅读0次

    如何全局安装一个 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

          本文链接:https://www.haomeiwen.com/subject/loogxqtx.html