NPM

版权声明:本文自撰,转载先跟我说一下比较好 https://blog.csdn.net/KimBing/article/details/89599157

NPM

安装 nrm


sh-3.2# npm i -g nrm
npm WARN deprecated coffee-script@1.7.1: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
/usr/local/bin/nrm -> /usr/local/lib/node_modules/nrm/cli.js
+ nrm@1.1.0
added 324 packages from 564 contributors in 22.77s


sh-3.2# nrm ls

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/

全局文件的安装路径

/usr/local/lib/node_modules/

__dirname 代表js文件的绝对路径

npm --save-dev --save -S -D 区别

参阅: https://blog.csdn.net/jwl_willon/article/details/81054978

--save   <=> -S
--save-dev  <=> -D
npm i --save-dev  <packname>
# 开发环境需要的包

npm i --save <packname>
# 生产环境需要的包

npm install moduleName 
# 安装模块到项目目录下
 
npm install -g moduleName 
# -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
 
npm install -save moduleName 
# -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
 
npm install -save-dev moduleName 
# -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

npm install moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 不会将模块依赖写入devDependencies或dependencies 节点。
  3. 运行 npm install 初始化项目时不会下载模块。

npm install -g moduleName 命令

  1. 安装模块到全局,不会在项目node_modules目录中保存模块包。
  2. 不会将模块依赖写入devDependencies或dependencies 节点。
  3. 运行 npm install 初始化项目时不会下载模块。

npm install -save moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 会将模块依赖写入dependencies 节点。
  3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
  4. 运行npm install --production或者注明NODE_ENV变量值为production时,会自动下载模块到node_modules目录中。

npm install -save-dev moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 会将模块依赖写入devDependencies 节点。
  3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
  4. 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。

关于安装包的总结:
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。

安装模块到系统:全局使用

需要 root 权限,才能全局安装 node moudule,不然会报权限错误

npm install -g <package_name>

登录

登录在 https://nodejs.com 注册的帐户,并可以发布自己的包

npm login

# 查看当前登录的用户
npm whoami

npm 一些常用操作命令

操作 CLI 命令
登录到 npm npm login
修改个人资料,包括密码 npm profile set
为帐户修改 2FA 模式 npm profile enable-2fa auth-only
停用 2FA 模式 npm profile disable-2fa
操作 CLI 命令
登录到 npm npm login
修改个人资料,包括密码 npm profile set
Change 2FA modes for your user account npm profile enable-2fa auth-only
Disable 2FA for your user account npm profile disable-2fa
创建 tokens npm token create
撤消 tokens npm token revoke
公布 packages npm publish
取消公布 packages npm unpublish
Deprecate packages npm deprecate
改变包的可见属性 npm access public/restricted
改变用户和组的请求权限 npm access grant/revoke
改变 2FA 模式需要的东西 N/A

更新

更新项目中的模块

npm update

查看过期的包

npm outdated

全局操作加 -g

卸载模块

在项目目录下卸载的时候,会自动删除 config.json 中的 dependence 属性

npm uninstall <package_name>

创建自己的模块

  1. 新建目录
  2. 在目录中新建 config.json 文件
    或者用指令 npm init 根据系统提示完成建立 config.json
{
  "name": "kyle-npm-test-package",
  "version": "1.0.2",
  "dependencies": {},
  "devDependencies": {
    "popper.js": "^1.14.7"
  },
  "description": "My first npm package",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "test"
  ],
  "author": "kylebing",
  "license": "ISC"
}

发布

完成之后

# 更新版本,相当于 git 的打标签
npm version patch

# 发布
npm publish

查看已安装的顶级组件

npm list --depth=0
展开阅读全文

没有更多推荐了,返回首页