美文网首页
npm学习总结

npm学习总结

作者: 花泽冒菜 | 来源:发表于2019-07-09 16:32 被阅读0次

    官方文档:https://www.npmjs.cn/getting-started/what-is-npm/

    1 简介

    npm是一个包管理工具,包括三个部分:

    • 网站:展示、查找各种包(代码模块,package)及其使用方法,设置参数以及管理npm使用体验的平台

    • 注册表(registry):是一个巨大的数据库,保存了每个包的信息

    • 命令行工具(CLI):用来直接使用npm

    2 安装和使用

    由于npm是用Node.js写的,因此要安装Node.js来使用npm。
    最快捷的安装方式是从Node.js官网直接下载安装Node.js,npm也会自动安装。
    安装后运行以下命令以检测是否安装成功:
    $ node -v // 查看Node.js版本
    $ npm -v // 查看npm版本

    安装成功后,直接运行npm的各种命令来下载、删除、发布包等,例如安装一个第三方包:
    $ npm install <package_name> // 会在当前目录下创建一个 node_modules 的目录,并将下载的包保存在该目录下。

    3 package.json文件

    该文件用来描述一个项目所需要用到的所有依赖包及其版本号。
    必须包含name和version属性:

    运行以下命令来创建一个package.json文件:
    $ npm init  // 创建一个package.json文件,创建过程中会有一系列关于需要怎样创建package.json的问题需要回答
    $ npm init --yes/-y  // 传建一个默认的package.json文件
    

    一个默认的paskage.json文件:

    {
      "name": "my_package",  // 当前目录的名字,这个package的名字
      "description": "",  // README.md文档内容的第一行,如果没有 README.md则为空字符串, README.md描述了这个项目的相关信息,有利于npm检索
      "version": "1.0.0",  // 当前版本
      "main": "index.js",  // 入口文件
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "repository": {
        "type": "git",
        "url": "https://github.com/ashleygwilliams/my_package.git"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "bugs": {
        "url": "https://github.com/ashleygwilliams/my_package/issues"
      },
      "homepage": "https://github.com/ashleygwilliams/my_package"
    }
    

    可以设置字段值:
    $ npm set init.author.email "example@npmjs.com"
    还可以自定义npm init过程中的问答:在家目录下创建一个 .npm-init.js文件自定义问答内容,详见:https://github.com/npm/init-package-json

    package.json使用dependencies和devDependencies两个属性用来描述项目所需依赖包:

    {
      "name": "my_package",
      "version": "1.0.0",
      "dependencies": {  // 生产环境需要用到的依赖包
        "my_dep": "^1.0.0"  // 依赖包的版本号描述使用语义版本(SemVer)语法
      },
      "devDependencies" : {  // 本地开发环境需要用到的依赖包
        "my_test_framework": "^3.1.0"
      }
    

    不同环境需要用到的依赖包安装方法:
    $ npm install <package_name> --save // 安装到dependencies
    $ npm install <package_name> --save-dev // 安装到devDependencies

    4 管理本地安装的包

    $ npm update // 更新
    $ npm uninstall <package_name> // 删除
    $ npm uninstall --save lodash // 删除package.json文件中dependencies的依赖
    $ npm uninstall --save-dev lodash // 删除package.json文件中devDependencies的依赖
    $ npm install -g <package> // 安装全局包,如果是命令行工具,应该要全局安装
    $ npm update -g <package> // 更新全局包
    $ npm update -g // 更新全部全局包
    $ npm outdated -g --depth=0 // 检测那些包需要更新
    $ npm install npm@latest -g // 更新npm
    $ npm uninstall -g <package> // 删除全局包

    5 发布更新一个包

    可以将任何一个包含package.json文件的目录发布到npm中,只有添加到.gitignore或.npmignore中的文件不会被发布到npm上。

    5.1 发布

    首先要在官网注册一个npm账号,注册成功后:
    $ npm login // 登录npm
    $ npm whoami // 查看当前登录用户以检查是否登录成功

    有两点注意:

    • 包的名字要唯一并且和包的功能相关
    • 添加readme.md文档便于被优先检索到

    $ npm publish // 发布到npm
    发布时如果提示“ You do not have permission to publish "<package_name>". Are you logged in as the correct user? :<package_name>”
    就说明npm上已有同名的包了,需要修改package.json的name字段值。发布成功后就可以在官网上看到自己的包了。

    5.2 更新包

    开发完执行以下命令可以更新包,注意由于reamme.md文档内容会展示在npm官网中该package的详情页面,在更新package时如果有需要也要同步更新readme。

    $ npm version <update_type> // 更新
    update_type有三种类型:patch、minor、major(更多语义化版本的介绍详见:https://docs.npmjs.com/about-semantic-versioning):

    • patch:会增加第三个版本号,表示向后兼容的bug修复
    • minor:会增加第二个版本号,表示向后兼容的新特性
    • major:会增加第一个版本号并重置后两个版本号,变为x.0.0,表示向后不兼容的重大变更

    版本号更新后再执行
    $ npm publish

    to be continued...

    相关文章

      网友评论

          本文标题:npm学习总结

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