关于 npm 包管理器最常用的内容都在这儿了
Nodejs的诞生,给前端开发世界带来了翻天覆地的变化。
前端工程化,各种工具,以及向后端的能力扩展。
车子离不开轮子,node(前后端)开发离不开npm这个包管理工具,在这总结下常用配套工具:
npm
安装Nodejs会自带 npm,这个默认的包管理器。
常用的基本命令有
- 初始化,建立工程(主要体现在生成一个package.json的文件)
npm init
安装包
如果是clone一个已有工程,下到本地第一步自然是安装所有的依赖包了。npm install
// 简写:
npm i
如果要全局安装一个包,
npm install -global <packagename>
// 或简写
npm i -g <packagename>
如果是局部安装,只在本项目工程内使用,有开发依赖与生产依赖之分
- 生产依赖(安装完会被添加到package.json文件的dependencies)
npm install --save <packagename>
// 或简写:
npm i -S <packagename>
- 开发依赖(安装完会被添加到package.json文件的devDependencies)
npm install --save-dev <packagename>
// 或简写:
npm i -D <packagename>
执行命令
除了初始化和安装包,最常用的要数npm run <commandname>
了。
即执行命令任务。都可以执行什么呢?
可执行的命令任务都配置在了package.json文件的scripts
下。
初始化完成后往往都是有一个默认的test
命令。
类似的,我们可以在这里添加自己的任务内容。比如:
"scripts": {
"start": "webpack-dev-server --open",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js",
},
以上配置中,键值对中的键名自己随便起,后面的值,就根据你装的对应的包来了,
如webpack-dev-server就是方便前端开发用的模拟接口用的服务器,
eslint是语法检查排错的工具。
在后面的就是传的参数了。
特别的一点是,npm start
是默认就有的一个命令,
其实就是它可以省略run
而已,
执行的还是npm run start
。
补充:
国内访问国外的npm服务器来安装的话,网速缓慢,经常会出现安装失败的情况。
往往都是用淘宝 NPM 镜像cnpm
来安装。- 首先全局安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 这样就可以使用
cnpm
来安装各种依赖包了
只是把npm
换成cnpm
而已,其它install用法完全一样。
cnpm install <packagename>
这样,包安装就快多了,基本不可能安装失败。
另外,不能一个包用npm装,一个包就cnpm装,反正我试的时候要删掉node_modules
文件夹重新用同一源安装。
nrm
上面说到了cnpm
,改用访问淘宝NPM镜像,这是一种方式。
还有很多另外的源,nrm是统一管理的工具,可以一键切换npm包安装源。
- 全局安装nrm
npm install -g nrm
查看源
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/
带星号
*
的就是当前使用的源,也可以用一下命令查看:nrm current // => 显示 npm
切换源
nrm use <originname>
如:
nrm use cnpm // 显示:
Registry has been set to: http://r.cnpmjs.org/
nrm current // 显示:
cnpm
注意:
这里的cnpm与上面提到的cnpm不是一回事儿。
这里的cnpm只是给npm切换源,上面的cnpm是单独一个安装工具,除了没有npm publish
,其它都跟npm一样。
nvm
安装了node,就是此时最新的版本。
如果要参与的是已有老项目,可能会版本不匹配,环境有问题,
这时候要重新安装一个旧版本的吗?
再做新项目的时候又再卸载重新安装新版本吗?
那样多麻烦。当然有简便的办法了,那就是nvm
,node多版本管理工具。
查看已安装node版本
nvm ls
// 显示:
* 10.15.3 (Currently using 64-bit executable)
8.15.1
即当前使用版本为10.15.3,本机安装了两个版本的node了,另一个是8.15.1
可以通过nvm use [version]
来切换版本
- 切换版本
nvm use 8.15.1
// 显示:
Now using node v8.15.1 (64-bit)
很显然,安装的有点旧了,最新的LTS版本都到12.13.0了,
怎么安装最新版呢?
- 添加新的node版本
查看已发布的可用版本:
nvm ls avilable
// 显示:
| CURRENT | LTS | OLD STABLE | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
| 13.0.1 | 12.13.0 | 0.12.18 | 0.11.16 |
| 13.0.0 | 10.17.0 | 0.12.17 | 0.11.15 |
| 12.12.0 | 10.16.3 | 0.12.16 | 0.11.14 |
| 12.11.1 | 10.16.2 | 0.12.15 | 0.11.13 |
| 12.11.0 | 10.16.1 | 0.12.14 | 0.11.12 |
| 12.10.0 | 10.16.0 | 0.12.13 | 0.11.11 |
| 12.9.1 | 10.15.3 | 0.12.12 | 0.11.10 |
| 12.9.0 | 10.15.2 | 0.12.11 | 0.11.9 |
| 12.8.1 | 10.15.1 | 0.12.10 | 0.11.8 |
| 12.8.0 | 10.15.0 | 0.12.9 | 0.11.7 |
| 12.7.0 | 10.14.2 | 0.12.8 | 0.11.6 |
| 12.6.0 | 10.14.1 | 0.12.7 | 0.11.5 |
| 12.5.0 | 10.14.0 | 0.12.6 | 0.11.4 |
| 12.4.0 | 10.13.0 | 0.12.5 | 0.11.3 |
| 12.3.1 | 8.16.2 | 0.12.4 | 0.11.2 |
| 12.3.0 | 8.16.1 | 0.12.3 | 0.11.1 |
| 12.2.0 | 8.16.0 | 0.12.2 | 0.11.0 |
| 12.1.0 | 8.15.1 | 0.12.1 | 0.9.12 |
| 12.0.0 | 8.15.0 | 0.12.0 | 0.9.11 |
| 11.15.0 | 8.14.1 | 0.10.48 | 0.9.10 |
This is a partial list. For a complete list, visit
https://nodejs.org/download/release
我们来安装一下12.13.0吧
nvm install 12.13.0
显示:
Downloading node.js version 12.13.0 (64-bit)...
Complete
Creating C:\nvm\temp
Downloading npm version 6.12.0... Complete
Installing npm v6.12.0...
Installation complete. If you want to use this version, type
nvm use 12.13.0
告诉我们安装完成,如果要使用这个版本的话就敲入这个命令(nvm use 12.13.0)。
你会发现,安装最新node的时候,npm也是配套更新的。
其实还有一个:npx
它的主要特点是,可以让我们直接使用一些包的命令,
不用关心有没有已经安装,因为它检查到没有就会先来安装。
还可以配参数来指定强制安装最新还是使用本地已有。
另外就是临时安装,用完即删,下次npx的时候还会安装。
它还提供类似nvm的功能,供临时切换node版本。
这个我倒是没怎么使用。
与npm相对的还有一个yarn
,在下一篇里再做介绍和总结吧。
关于 npm 包管理器最常用的内容都在这儿了的更多相关文章
- 【转】npm包管理器那些事
原文链接:http://www.cnblogs.com/shuoer/p/7782125.html npm包管理器那些事! 今天和朋友针对npm包全局安装和本地项目安装这个梗展开的激烈的讨论,故此做一 ...
- NPM包管理器入门(附加cnpm : 无法加载文件错误解决方案)
NPM 包管理器 1.作用: 快速构建nodejs工程 快速安装和依赖第三个模块 2.使用方法 快速构建 npm init 会得到一package.json文件 { "name": ...
- Node.js_简介及其 npm 包管理器基本使用_npm_cnpm_yarn_cyarn
Node.js 既是语言也是平台,跳过了 Apache.Nginx 等 HTTP 服务器,直接面向前端开发 JavaScript 是由 ECMAScript.文档对象模型(DOM)和浏览器对象模型(B ...
- npm包管理器报错-npm ERR! Response timeout while trying to fetch https://registry.npmjs.org/@XXX(over 30000ms)
由于这两天买的新电脑在短期内频频蓝屏.卡机,不得不把自己其他的本本拿出来换上,但是程序员换电脑是真的痛苦,其他不说就说一个配环境 真的折腾哈 我是一名前端菜鸟,现在自己的本本上使用的是npm包管理工具 ...
- NPM(包管理器)作用是什么?
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: a.允许用户从NPM服务器下载别人编写的第三方包到本地使用 b.允许用户从NPM服务器 ...
- npm包管理器相关知识
关于npm包安装命令的介绍,如下图:
- npm包管理器小节一下
淘宝npm镜像cnpm设置 npm install -g cnpm --registry=https://registry.npm.taobao.org 更新npm的版本 npm install np ...
- 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)
起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像, http://npm.taobao.org/ 竟然说让我再下载一个cnpm,要不然就每次都得install ...
- WebStorm中使用npm包管理器
1.首先安装Node.js,安装之后添加NodeJs的安装路径到系统Path环境变量,在控制台之中测试node,与npm命令是否工作正常. 2.配置npm的源为国内的淘宝镜像,这里不推荐使用cnpm ...
随机推荐
- 数制转换itoa atoi int转字符串 字符串转int string转int int转string
在苦于昨晚最后一个数制转换题,他的转换结果必须是整形数,纳尼?转换完放数组里又要变成整形数.这是什么操作,而且如果是16进制,用字母A,B-表示,在进行运算时都难以计算. 突发奇想,当十进制成立的时候 ...
- P3119 [USACO15JAN]Grass Cownoisseur G
P3119 [USACO15JAN]Grass Cownoisseur G tarjan缩点+分层图上跑 spfa最长路 约翰有 \(n\) 块草场,编号 \(1\) 到 \(n\),这些草场由若干条 ...
- 题解 CF160B 【Unlucky Ticket】
本文为UserUnknown原创 思路 这道题应该怎么做? 可以把输入的数字逐位拆分后存入数组,就像这样存进去: int a[N],b[N] tmp=n; k=1; while(--tmp){ a[k ...
- CF #632 (Div. 2) 对应题号CF1333
1333A Little Artem 在一个\(n\)行\(m\)列的格子上染色,每个格子能染黑白两种 构造一种方案,使得四个方向有至少一个白色格子的黑色格子的数量,比四个方向有至少一个黑色格子的白色 ...
- Python (深浅拷贝)
1.深拷贝 --> 克隆一份,修改拷贝后的内容不对原对象内容产生影响 拷贝后修改序列中元素内容,注意:被修改的元素不能为一个序列中的某个值 a = [["北京多测师",& ...
- 清北学堂—2020.3NOIP数学精讲营—Day 1 morning 重点笔记
qbxt Day 1 morning 重点笔记 --2020.3.8 济南 主讲:钟皓曦 1 正数%负数==正数 负数%正数==负数 负数%负数==负数 a%b的答案的符号取决于a的符号. 2 快速幂 ...
- 初识CoAP协议
前言 本文介绍什么是CoAP,以及如何在物联网设备上使用它.CoAP是一种物联网协议,具有一些专门为受约束的设备而设计的有趣功能.还有其他一些可用于构建物联网解决方案的IoT协议,例如MQTT等. 物 ...
- Spring官网阅读(一)容器及实例化
从今天开始,我们一起过一遍Spring的官网,一边读,一边结合在路神课堂上学习的知识,讲一讲自己的理解.不管是之前关于动态代理的文章,还是读Spring的官网,都是为了之后对Spring的源码做更全面 ...
- 消息队列高手课 -笔记-Kafka高性能的几个关键点
总结下kafka 高性能的几个关键点是: 1:使用批量处理的方式 去提升系统的吞吐能力 2:基于磁盘文件高性能的顺序读写的特性来设计存储结构 3:利用操作系统的PageCache 来缓存数据 减少I ...
- matlab读取csv文件并显示
传统的方式可以通过读取文件,然后处理字符串的方式对csv文件进行解析,在matlab中可以通过csvread函数读取csv文件,然后通过plot对数据进行显示,也可以对里面的函数进行分析: csv文件 ...