npm相关操作及知识

npm

NPM 是什么?

  • node package manager
  • npm(全称Node Package Manager,即node包管理器)是Node.js默认的、以JavaScript编写的软件包管理系统。
  • npm 官方网站
  • npm 官方文档

一般当我们说npm的时候可能指3件事

  1. NPM 网站:https://www.npmjs.com/
  2. NPM 包管理库,存储了大量的JavaScript代码库
  3. NPM 客户端,我们所使用的npm命令行工具。使用JavaScript开发的基于node.js的命令行工具,本身也是Node的一个包。
    可以通过在命令行中输入:
    npm --version
    升级 npm(自己升级自己):
    npm install --global npm

npm常用命令

  • npm init
  • npm init -y —>快速生成,可以跳过向导
  • npm install
    • 一次性把 dependencies 选项中的依赖项全部安装
    • 简写 npm i
  • npm install 包名 ---->只下载
  • npm install --save 包名
    • 下载并且保存依赖项(package.json文件中的dependencies选项)
    • 简写 npm i -S 包名
  • npm uninstall 包名
    • 只删除,如果有依赖项 会依然保存
  • npm uninstall --save 包名
    • 删除的时候也会把依赖信息也去除
    • npm un -S 包名
  • npm help ---->查看使用帮助
  • npm 命令 --help
    • 查看指定命令的使用帮助
    • 例如忘记uninstall 命令的缩写了,这个时候,可以输入npm uninstall --help来查看使用帮助

解决npm被墙的问题

npm 储存包文件服务器在国外,有时候会被墙,速度很慢

https://npm.taobao.org/淘宝开发团队做的备份

安装淘宝的cnpm

#在任意目录执行都可以
# --global 表示安装到全局,而非当前目录
# --global 不能省略,否则不管用
npm install --global cnpm

接下来安装包的时候,均将npm替换成 cnpm

举个例子

#这里还是走国外的 npm 服务器 ,速度比较慢

npm install jquery

#使用 cnpm 就会通过淘宝的服务器来下载jQuery

cnpm instll jquery

如果不想安装 cnpm 又想使用淘宝的服务器来下载:

npm install jquery --registry=https://registry.npm.taobao.org

加参数较麻烦,可直接将选项加入配置文件中

npm config set registry https://registry npm.taobao.org

#查看npm配置信息
npm config list 

只要经过上面配置,以后所有的npm install 都会默认通过淘宝的服务器下载。

package.json

建议每个项目都要有一个package.json文件(包描述文件,就像产品的说明书一样),给人踏实的感觉

这个文件可以通过npm init的方式初始化出来

C:\Users\ZOE XU\Desktop\npm-demo>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
                                                                                                                        Press ^C at any time to quit.
package name: (npm-demo)
version: (1.0.0)
description: this is a test project
entry point: (index.js) main.js
test command:
git repository:
keywords:
author: zoe xu
license: (ISC)
About to write to C:\Users\ZOE XU\Desktop\npm-demo\package.json:

{
  "name": "npm-demo",
  "version": "1.0.0",
  "description": "this is a test project",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "zoe xu",
  "license": "ISC"
}

Is this OK? (yes) yes

C:\Users\ZOE XU\Desktop\npm-demo>npm install --save jquery
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN npm-demo@1.0.0 No repository field.

- jquery@3.4.1
  added 1 package from 1 contributor in 13.034s

C:\Users\ZOE XU\Desktop\npm-demo>

对于咱们目前来讲,最有用的是那个dependencies选项,可以用来帮我们保存第三方包的依赖信息

如果你的node_modules删除了也不用担心,我们只需要:npm install就会自动把package.json中的dependencies中所有的依赖都下载回来

  • 建议每个项目的根目录下都有一个package.json文件
  • 建议执行npm install包名的时候都加上–save这个选项,目的是保存依赖项信息

package.json 与package-lock.json

  • npm5 以前是不会有package-lock.json这个文件, npm 5以后才加入了 这个文件
  • 当安装包的时候都会自动创建或者更新package-lock.json这个文件
  • package-lock.json这个文件会保存 node_modules 中所有包的信息(版本,下载地址)
    • 这样的话重新 npm install的时候速度会提升
  • 从文件来看,有个 lock 称之为锁
    • 这个lock 是用来锁定版本的
    • 如果这个项目依赖了 1.1.1 版本 ,重新 install 会下载最新版本 (无lock时)
    • 所以package-lock.json 这个文件的另一个作用就是 锁定版本升级号 ,防止自动升级更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值