关于npm常见问题

一、npm简介

npm,全称是 Node Package Manager,通俗的说就是使用一台服务器集中管理一些第三方的依赖库,比如jQuery、Bootstrap等,方便下载使用。npm是Node.js的包管理器。它作为一个开源项目旨在帮助JavaScript开发人员轻松共享打包的代码模块。npm由三个独立的部分组成:网站,注册表(registry),命令行工具(CLI)。

在www.npmjs.com可以搜索第三方包,开发者发布在这个网站上的,npm命令就是在这个网站上下载第三方包。

npm的第二层含义就是一个命令行工具,只要你安装了node就已经安装了npm,npm也有版本的概念,输入 npm –version查看版本,升级npm npm install - -global npm

二、安装node环境:

1.前往node官网下载node安装包 下载 | Node.js 中文网

2.选择对应操作系统的.msi安装包,下载到本地后一键点击下一步安装即可,安装完成后在cmd控制台中输入node -v查看当前安装的版本,若能够查看安装版本,则证明node环境安装成功。

3.随后在控制台中输入指令 npm install npm -g 全局安装npm,这样才能在全局环境下使用npm

4. 随后就可以在电脑的任何路径打开控制台使用npm命令了

三、npm项目初始化 

建议每一个项目都要有一个package.json文件(包描述问价,相当于产品的说明书),这个文件可以通过 npm init的方式初始化出来,该文件中最有用的是dependencies选项,可以用来保存第三方包的依赖信息。

安装的依赖包会统一安装到项目的node_modules文件下

建议执行npm install 包名的时候 都加上- - save这个选项,目的是在package.json的dependencies选项下保存生产依赖项信息(开发和部署时候都需要的)。如果node_modules删除了只需要 npm install就会自动把package.json中的dependencies中的所有依赖项下载回来,版本5以后就不用加了会自动添加;devDependencies开发依赖模块(只有开发的时候需要的模块);scripts配置本地可执行命令

示例1:在script中配置一条npm可执行命令用于将项目中的less文件转换为css

  1. {

  2. "scripts":{

  3. "less":"lessc 1.less 1.min.css -x"

  4. }

  5. }

 这样就能在当前项目的终端下使用npm run less 进行less文件的转换操作,相当于执行了lessc 1.less 1.min.css -x这条webpack命令。

示例2:在配置可执行脚本命令的时候,基于process的环境变量区分开发环境还是生产环境

  1. "scripts":{

  2. "serve":"set NODE_EVN=dev&&node index1.js",

  3. "build":"set NODE_EVN=pro&&node index1.js"

  4. }

上述配置中 set NODE_ENV=dev 代表设置全局环境变量,但在MAC中使用 export NODE_ENV=dev

在index1.js中获取script中设置的环境变量进行判断

  1. let n = process.env.NODE_EVN;

  2. if(n === 'dev') {

  3. console.log('开发环境下执行');

  4. } else {

  5. console.log('生产环境下执行');

  6. }

2. 关于package-lock.json

在npm5以前是不会有package-lock.json这个文件的,之后才加入。当安装包的时候npm会自动生成或者更新package-lock.json这个文件,它会保存node_modules中所有包的信息(版本,下载地址),这样重新执行npm install的速度会更快一些; 也可以锁定版本,防止执行npm install时下载新的版本(如果项目依赖1.1.1版本,但重新下载会下载最新版本)

四、常用命令

  1. npm init   npm init –y:快速生成package.json文件,跳过向导,所有选项默认
  2. npm install 包名:下载指定的模块
  3. npm install 包名 --save:把模块保存在清单生产依赖中 (简写npm i –S 包名) 
  4. npm install 包名 --save-dev:把模块保存在清单开发依赖中
  5. npm install:一次性把dependencies中的所有依赖项下载回来(开发 + 生产环境)
  6. npm install --production:只安装生产依赖的模块
  7. npm install 包名 -g(--global):把模块安装在全局环境中
  8. npm uninstall 包名:只删除,如果有依赖项会依然保存
  9. npm uninstall --save删除的同时也会把依赖项给删除 npm un –S 包名
  10. npm help:查看npm使用帮助
  11. npm install 包名@版本号 --save:下载指定版本的包
  12. npm 命令 --help:查看指定命令的使用帮助
  13. npm config list:查看npm配置信息
  14. npm view 包名 versions > 包名.versions.json:查看某个模块的版本信息,输出到指定的模块中
  15. npm root -g:查看全局安装模块的目录

五、解决npm被墙

使用cnpm

npm存储包的服务器在国外,有时会被墙,速度很慢,淘宝的开发团队把npm在国内做了一个备份  --->  中国 NPM 镜像

安装淘宝的cnpmnpm install –global cnpm

接下来安装包的时候把之前的npm替换成cnpm,npm就会通过淘宝的服务器下载(在任意目录下都可以执行,global是安装到全局的意思)

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

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

 可以将这个选现加入配置文件中

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

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

yarn常用指令

可以使用yarn代替npm安装项目依赖,它的安装速度要比npm要快(npm 的两倍至三倍),使用 npm i yarn -g 安装yarn

  1. yarn init -y:生成package.json文件
  2. yarn install:一次性把dependencies中的所有依赖项下载回来(跑环境)
  3. yarn add 包名@x.xx.xx:下载指定的模块
  4. yarn remove 包名:移除指定的模块

基于nrm切源提高npm速度

首先安装nrmnpm install nrm -g

查看有哪些源:nrm ls

切源:nrm use xxx

一般切源到taobao,即使用指令 nrm use taobao

六、什么情况下把模块安装在全局?

使用npm install 包名 -g安装在全局下的模块,对任何项目都有作用(可能会导致版本冲突),只能基于命令的方式管理,不能基于CommonJS中的require导入使用(不能导入到文件中基于代码来处理)。

可以使用指令npm root -g查看全局安装模块的目录,一般安装在本地电脑c盘AppData/Roaming/npm文件夹下,之所以可以对安装在全局下的xxx模块使用对应的命令进行操作,是因为在该文件下存在xxx.cmd的文件;

安装在本地的模块,可以在项目中导入基于代码操作,不能基于命令来操作。但是可以通过package.json中的scripts配置一些npm的可执行命令,配置后通过 npm run xxx 运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值