美文网首页前端开发那些事儿前端
第三节: npm 包管理工具

第三节: npm 包管理工具

作者: 时光如剑 | 来源:发表于2020-12-14 08:03 被阅读0次

    Node的社区是非常热闹的,众多的优秀开发这提供了很多功能模块,供我们选择使用,那么如何管理和使用这些第三方作者开发功能呢? 此时node开发者主导了一个社区来管理这些功能,这就是NPM

    NPM(Node Package Manager) Node包(模块)管理工具,借助NPM,可以帮助用户快速安装和管理依赖包,这样我们就可以很方便的使用来自全球Node开发者提供的包

    这里有提到了一个概念包, 那么什么包? 包和模块有和不同?

    1. 什么是包

    JS模块的基本单位 就是单个的JS文件,但复杂的模块往往由多个子模块组成,为了便于管理和使用,我们可以把由多个子模块组成的大模块成为包,并把所有的子模块放在同一个目录里

    组成一个包的所有子模块中需要一个入口模块,入口模块的导出对象被称为包的导出对象

    默认包中的入口模块为index.js,也可以在包中新建一个package.json 包描述文件,设置main属性值为模块入口

    简单理解如下:

    包 === 项目
    模块 === 文件
    

    2. 什么是package.json

    package.jsonnode.js项目的包描述文件,以JSON格式的形式描述文件

    2.1 如果创建package.json
    npm init
    

    自动快速初始化项目(全部以yes生成package.json)

    npm init -y
    
    2.2 package.json的常用属性
    1. name 项目名称
    2. version 版本号
    3. description 项目描述
    4. main 主入口文件
    5. dependencies 依赖描述
    6. devDependencies 开发时依赖(导出不依赖)
    7. scripts 脚本命令(可以使用npm命令进行执行)
    8. license 开源协议
    9. keyword 关键字

    3. npm 常用命令

    3.1 安装包
    1. 安装包(安装最新版)

        npm install '<包的名称>' 
      

      可以缩写

        npm i express 
      

      效果同上

    2. 指定安装包的版本

      npm i '<包的名称>@版本号'
      npm i express@1.0.0
    
    1. 全局安装包
      npm i '包的名称' -g
    
    // 查看全家包的路径
      npm root -g
    

    全局安装的位置
    在c盘,用户下的 AppData目录下 的Roaming下的npm下的node_modules文件夹里

    1. 将安装的包写入依赖
      npm i '包的名称' --save
    

    将安装包写入package.json依赖列表

    1. 将安装的包写入开发时依赖

      npm i '包的名称' --save-dev
      
    3.2 npm其他命令
    1. 搜索包

      npm search '包的名称'
      
    2. 查看包的信息

      npm view '包的名称'
      
    3. 卸载包

      npm uninstall '包的名称'
      
    4. 更新包

      npm update '包的名称'
      

    4. cnpm

    npm就是一个下载工具,默认就是取github上去下载,下载会比较忙,所以淘宝做了镜像.10分保持跟官网一次同步,只能下载不能上传

    npm官网:www.npmjs.com

    淘宝镜像: http://npm.taobao.org/

    5.神奇的node_modules文件夹

    如果我们引入一个文件,没有写./ 会自动在node_modules文件夹里查找模块

    require('test.js')
    

    更为有意思的是,node_modules文件夹里面的模块,在引用时候不需要考虑路径,你只要确保node_modules文件夹在需要引入模块js文件的任何祖先路径中

    会有自动父级查找功能

    如果当你省略文件后缀名的时候,会把引入的作为文件夹,自动识别文件夹里面的index.js

    相关文章

      网友评论

        本文标题:第三节: npm 包管理工具

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