当前位置:   article > 正文

npm —— Node.js 标准的软件包管理器_npm node-sdl

npm node-sdl

1. 基本命令

1.0 换源

  1. set registry

    npm config set registry https://registry.npm.taobao.org`
    // 配置后可通过下面方式来验证是否成功
    npm config get registry`
    // 或npm info express
    
    • 1
    • 2
    • 3
    • 4
  2. yrm: 是一个 yarn源管理器,允许你快速地在源间切换

    npm install yrm -g
    yrm use taobao
    yrm ls
    yarn config get registry 
    
    • 1
    • 2
    • 3
    • 4

1.1 查找包 npm view

查看软件包在 npm 仓库上最新的可用版本

npm view [package_name] version
  • 1

列出软件包所有的以前的版本

npm view <package> versions
  • 1

1.2 安装包 npm install

1.2.1 安装单个包
npm install <package-name>
#安装特定的软件包
#npm install <package>@<version>
npm install cowsay@1.2.0
  • 1
  • 2
  • 3
  • 4

通常会在此命令中看到更多标志:

  • --save 安装并添加条目到 package.json 文件的 dependencies。
  • --save-dev 安装并添加条目到 package.json 文件的 devDependencies。

devDependencies 开发依赖是仅用于开发的程序包,在生产环境中并不需要。 例如测试的软件包、webpack 或 Babel。
dependencies 则是与生产环境中的应用程序相关。通过npm install --production),避免安装这些开发依赖项。

1.2.2 安装所有依赖

项目具有 package.json 文件

npm install
  • 1
1.2.3 本地安装与全局安装
  • 本地的软件包 安装在运行 npm install <package-name> 的目录中,并且放置在此目录下的 node_modules 文件夹中
  • 全局的软件包 -g, 全局位置查看: npm root -g
# 本地安装
npm install <package-name>
# 全局安装
npm install -g <package-name>
  • 1
  • 2
  • 3
  • 4

1.3 更新包 npm update

## 更新所有包
npm update

## 指定单个软件包进行更新:
npm update <package-name>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.4 卸载包 npm uninstall

npm uninstall <package-name>
npm uninstall -S <package-name> ## -S 或 --save 标志,则此操作还会移除 package.json 文件中的引用
npm uninstall -D <package-name> ## 使用 -D 或 --save-dev 标志从文件中移除
npm uninstall -g <package-name> ## -g 或 --global 标志 全局卸载
  • 1
  • 2
  • 3
  • 4

1.5 安装包列表 npm list

npm list
npm list -g
# 顶层的软件包
npm list --depth=0
# 指定名称来获取特定软件包的版本
npm list cowsay

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2. 说明文件

2.1 语义版本

语义版本控制的概念很简单:所有的版本都有 3 个数字:x.y.z

  • 第一个数字是主版本。
  • 第二个数字是次版本。
  • 第三个数字是补丁版本。

当发布新的版本时,不仅仅是随心所欲地增加数字,还要遵循以下规则:

  • 当进行不兼容的 API 更改时,则升级主版本。
  • 当以向后兼容的方式添加功能时,则升级次版本。
  • 当进行向后兼容的缺陷修复时,则升级补丁版本。

因为 npm 设置了一些规则,可用于在 package.json 文件中选择要将软件包更新到的版本(当运行 npm update 时)。规则使用了这些符号:

符号规则
^只会执行不更改最左边非零数字的更新。 如果写入的是 ^0.13.0,则当运行 npm update 时,可以更新到 0.13.1、0.13.2 等,但不能更新到 0.14.0 或更高版本。 如果写入的是 ^1.13.0,则当运行 npm update 时,可以更新到 1.13.1、1.14.0 等,但不能更新到 2.0.0 或更高版本。
~如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
>接受高于指定版本的任何版本。
>=接受等于或高于指定版本的任何版本。
<=接受等于或低于指定版本的任何版本。
<接受低于指定版本的任何版本。
=接受确切的版本。
-接受一定范围的版本。例如:2.1.0 - 2.6.2。
||组合集合。例如 < 2.1 || > 2.6。
无符号仅接受指定的特定版本(例如 1.2.1)。
latest使用可用的最新版本。

2.1 package.json

  • npm init命令会帮助你生成package.json文件
  • package.json 文件是项目的清单。 它可以做很多完全互不相关的事情。
2.1.1 package.json

Package.json:自己创建,创建空白文件({}), npm install package之后会自动在文件中增加新的东西。

属性说明
version表明了当前的版本。
name设置了应用程序/软件包的名称。
description是应用程序/软件包的简短描述。
main设置了应用程序的入口点。
private如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm。
scripts定义了一组可以运行的 node 脚本。
dependencies设置了作为依赖安装的 npm 软件包的列表。
devDependencies设置了作为开发依赖安装的 npm 软件包的列表。
engines设置了此软件包/应用程序在哪个版本的 Node.js 上运行。
browserslist用于告知要支持哪些浏览器(及其版本)。
{
  "name": "test-project",
  "version": "1.0.0",
  "description": "A Vue.js project",
  "main": "src/main.js",
  "private": true,
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "unit": "jest --config test/unit/jest.conf.js --coverage",
    "test": "npm run unit",
    "lint": "eslint --ext .js,.vue src test/unit",
    "build": "node build/build.js"
  },
  "dependencies": {
    "vue": "^2.5.2"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^8.2.1",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-jest": "^21.0.2",
    "babel-loader": "^7.1.1",
    "babel-plugin-dynamic-import-node": "^1.2.0",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-plugin-transform-vue-jsx": "^3.5.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "chalk": "^2.0.1",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.28.0",
    "eslint": "^4.15.0",
    "eslint-config-airbnb-base": "^11.3.0",
    "eslint-friendly-formatter": "^3.0.0",
    "eslint-import-resolver-webpack": "^0.8.3",
    "eslint-loader": "^1.7.1",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-vue": "^4.0.0",
    "extract-text-webpack-plugin": "^3.0.0",
    "file-loader": "^1.1.4",
    "friendly-errors-webpack-plugin": "^1.6.1",
    "html-webpack-plugin": "^2.30.1",
    "jest": "^22.0.4",
    "jest-serializer-vue": "^0.3.0",
    "node-notifier": "^5.1.2",
    "optimize-css-assets-webpack-plugin": "^3.2.0",
    "ora": "^1.2.0",
    "portfinder": "^1.0.13",
    "postcss-import": "^11.0.0",
    "postcss-loader": "^2.0.8",
    "postcss-url": "^7.2.1",
    "rimraf": "^2.6.0",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "uglifyjs-webpack-plugin": "^1.1.1",
    "url-loader": "^0.5.8",
    "vue-jest": "^1.0.2",
    "vue-loader": "^13.3.0",
    "vue-style-loader": "^3.0.1",
    "vue-template-compiler": "^2.5.2",
    "webpack": "^3.6.0",
    "webpack-bundle-analyzer": "^2.9.0",
    "webpack-dev-server": "^2.9.1",
    "webpack-merge": "^4.1.0"
  },
  "engines": {
    "node": ">= 6.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": ["> 1%", "last 2 versions", "not ie <= 8"]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

2.1.2 运行文件 npm run <task-name>

package.json

{
  "scripts": {
    "watch": "webpack --watch --progress --colors --config webpack.conf.js",
    "dev": "webpack --progress --colors --config webpack.conf.js",
    "prod": "NODE_ENV=production webpack -p --config webpack.conf.js",
  },
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

bash

npm run watch
npm run dev
npm run prod
  • 1
  • 2
  • 3

2.2 package-lock.json

package-lock.json : 安装包后,自动生成。

作用: 会固化当前安装的每个软件包的版本,当运行 npm install时,npm 会使用这些确切的版本。

3. npx

  • 轻松地运行本地命令

  • 无需安装的命令执行

    • npx cowsay "你好"
      
      • 1
  • 使用不同的 Node.js 版本运行代码

    • npx node@10 -v #v10.18.1
      npx node@12 -v #v12.14.1
      
      • 1
      • 2
  • 直接从 URL 运行任意代码片段

    • npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
      
      • 1

参考

将所有 Node.js 依赖包更新到最新版本

npm 包管理器

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/531149
推荐阅读
相关标签
  

闽ICP备14008679号