NPM学习笔记

NPM:
  node package manager,node包的管理工具。用Node.js编写的,使用前需要先安装Node.js。

 

安装NPM

  方法一:安装Node.js(LTS版本),会同时安装npm

  方法二: 通过NVM(Node Version Manage,节点版本管理器)安装Node.js和npm

 

package.json文件

  • 列出了项目所依赖的软件包
  • 允许使用“semantic versioning rules”规则指定项目可以使用的软件包的版本
  • 使构建具有可复制性,更易于与其他开发人员共享

  要求:

  一个package.json文件必须有:

  • "name"
    • 只能用小写字母
    • 至少一个字,不能有空格
    • 允许使用破折号和下划线
  • "version"
    • 格式为x.x.x
    • 遵循semver规范

  创建:

    方式一:npm init (以询问的方式依次初始化各配置项)

    方式二:npm init --yes 或 npm init -y (从当前目录提前的信息来生成默认值)

  注意:

    如果没有设置“description”的值,npm将使用README.md文件的第一行作为值。(便于在npm上的搜索)

  为init命令设置几个配置选项:

    npm set init.author.email "uakora96@gmail.com"

    npm set init.author.name "uakora"

    npm set init.license "MIT"

  自定义package.json文件初始化时的问题:在主目录下创建自定义文件npm-init.js文件...

  

  指定依赖项:

  • "dependencies":用于生产环境的软件包
  • "devDependencies":用于开发和测试的软件包

  --save 和 --save-dev:

    npm install <package_name> --save (只写入"dependencies"中,同默认)

    npm install <package_name> --save-dev (只写入"devDependencies"中)

安装包  

  npm install [-g] <package_name>  

  • 如果模块依赖某个包,并通过Node.js的require加载,那么应该选择本地安装
  • 如果想将包作为一个命令行工具,比如grunt CLI,那么应该选择全局安装

  说明:执行上述命令后,会在目录下创建一个node_modules的目录(如果不存在的话)

更新包

  npm update [-g]  [package_name]

  说明:

    1. 不指定包名,将更新所有包

    2. 更新之前,可通过执行 npm outdated [-g] 查看已有新版本的包

    3. npm outdated -g --depth=0 (查看需要更新的包)

卸载包

  npm uninstall [-g] [package_name]

  npm uninstall *

  说明:

    1. 在使用npm 6.13.4版时,不需要添加 --save 或 --save-dev参数,package.json中的依赖也会同时删除。

发布包

  步骤一:登录:npm login(没有账号,需先创建账号npm adduser)

  步骤二:测试是否已登录:npm whoiam (非必须)

  步骤三:确认包是否无误

  步骤四:发布:npm publish

  更新自己发布的包:

    更新版本号:npm version <update_type>

    更新README.md文件:npm version patch

    最后执行 npm publish

语义化版本(Semantic versioning, Semver)  

CODE STATUS STAGE RULE EXAMPLE #
First Release New Product Start with 1.0.0 1.0.0
Bug fixes, other minor changes Patch Release(补丁版本) Increment the third digit 1.0.1
New Features that don't break existing features Minor Release(次要版本) Increment the middle digit 1.1.0
Changes that break backward compatibility Major Release(主要版本) Increment the first digit 2.0.0

   

####

#### 

示例,如果软件包从1.0.4开始,指定范围的方式:

  • 补丁版本:1.0 或 1.0.x 或 ~1.0.4
  • 次要版本:1 或 1.x 或 ^1.0.4
  • 主要版本:* 或 x

 

作用域包(Scoped Packages)

  以@开头的包为作用域包,作用域是@与斜杆之间的内容。

  相关命令:

    npm init --scope=<username>

    npm config set scope <username>

    npm publish --access=public (默认,作用域包是私有的,非免费的,在发布时需要设置访问选项为public)

  使用作用域包

    要使用有作用域的程序包,只需在使用程序包名称的任何地方都包括作用域。

 

分发标签(dist-tags)

  添加标签

    npm dist-tag add <pkg>@<version> [<tag>]

  使用标签发布(eg:发布带有beta标签的软件包)

    npm publish --tag beta

  使用标签安装

    npm install <pkg>@<tag>  (eg:npm install somepkg@beta)

  

Security tokens

  相关命令:

    查看:npm token list

    新建:npm token create [--read-only] [cidr=list]

    删除:npm token delete [id]

 

配置文件

  相关命令:

    获取:npm profile get

    设置:npm profile set <pro> <value>

    

清除缓存

  npm cache verify

  npm cache clean --force

原文地址:https://www.cnblogs.com/uakora/p/12045238.html