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多版本管理工具。

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 包管理器最常用的内容都在这儿了的更多相关文章

  1. 【转】npm包管理器那些事

    原文链接:http://www.cnblogs.com/shuoer/p/7782125.html npm包管理器那些事! 今天和朋友针对npm包全局安装和本地项目安装这个梗展开的激烈的讨论,故此做一 ...

  2. NPM包管理器入门(附加cnpm : 无法加载文件错误解决方案)

    NPM 包管理器 1.作用: 快速构建nodejs工程 快速安装和依赖第三个模块 2.使用方法 快速构建 npm init 会得到一package.json文件 { "name": ...

  3. Node.js_简介及其 npm 包管理器基本使用_npm_cnpm_yarn_cyarn

    Node.js 既是语言也是平台,跳过了 Apache.Nginx 等 HTTP 服务器,直接面向前端开发 JavaScript 是由 ECMAScript.文档对象模型(DOM)和浏览器对象模型(B ...

  4. npm包管理器报错-npm ERR! Response timeout while trying to fetch https://registry.npmjs.org/@XXX(over 30000ms)

    由于这两天买的新电脑在短期内频频蓝屏.卡机,不得不把自己其他的本本拿出来换上,但是程序员换电脑是真的痛苦,其他不说就说一个配环境 真的折腾哈 我是一名前端菜鸟,现在自己的本本上使用的是npm包管理工具 ...

  5. NPM(包管理器)作用是什么?

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: a.允许用户从NPM服务器下载别人编写的第三方包到本地使用 b.允许用户从NPM服务器 ...

  6. npm包管理器相关知识

    关于npm包安装命令的介绍,如下图:

  7. npm包管理器小节一下

    淘宝npm镜像cnpm设置 npm install -g cnpm --registry=https://registry.npm.taobao.org 更新npm的版本 npm install np ...

  8. 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)

    起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像, http://npm.taobao.org/  竟然说让我再下载一个cnpm,要不然就每次都得install ...

  9. WebStorm中使用npm包管理器

    1.首先安装Node.js,安装之后添加NodeJs的安装路径到系统Path环境变量,在控制台之中测试node,与npm命令是否工作正常. 2.配置npm的源为国内的淘宝镜像,这里不推荐使用cnpm ...

随机推荐

  1. Hyperf基础教程

    前提说明 本教程适用于新手.老手,也适用于任何操作系统,包括Windows.linux.MacOS 介绍 Hyperf 是基于 Swoole 4.4+ 实现的高性能.高灵活性的 PHP 协程框架,内置 ...

  2. 网速慢?不!可能是DNS出了问题! 公共DNS优选之 BAT 百度、腾讯、阿里、谷歌DNS哪个更快?

    如果一下还是解决不了你的问题请这边走 首先是Google的DNS: 8.8.8.8 丢包严重 PASS但是扶墙的时候是必备的,如果有扶墙的需求的话可以备用. 二.百度DNS 180.76.76.76 ...

  3. Codeforces Round #460 (Div. 2)-A Supermaket(贪心)

    A. Supermarket time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  4. 数学--博弈论--巴什博奕(Bash Game)

    终于也轮到我做游戏了,他们做了好几个月的游戏了. 巴什博弈: 两个人做游戏,取石子,一个人最多可以可以取M个,至少取1个,最后取完的赢. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先 ...

  5. 《Docker从入门到跑路》之存储卷介绍

    默认情况下,容器会随着用户删除而消失,包括容器里面的数据.如果我们要对容器里面的数据进行长久保存,就不得不引用存储卷的概念. 在容器中管理数据持久化主要有两种方式:1.数据卷(data volumes ...

  6. 25-Java-Spring框架(三)

    Spring框架的了解.SpringIOC的部分内容请阅读23-Java-Spring框架(一) SpringwebMVC的了解.请求流程.运用等请阅读24-Java-Spring框架(二) 四.Sp ...

  7. Json格式数据的解析

    JSON是一种轻量级的数据交换格式,我们在编程中遇到的JSON数据通常就是一串字符串,只不过按照特定的格式去书写,这样当你把JSON数据传输给别人的时候对方只要使用这种特定的规则去阅读解析你的数据即可 ...

  8. 值得学习的C/C++开源项目 持续更新

    值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...

  9. uCOS2014.1.11(转载)(void*)0 的理解

    一般把(void*)0定义为NULL表示这是个空指针void的含义void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据.众所周知,如果指针p1和p2的类型 ...

  10. [hdu2119]二分图最小覆盖,最大匹配

    题意:给一个01矩阵,每次可以选一行或一列,打掉上面所有的1,求打掉所有的1所需的最小次数. 思路:经典的模型了,二分图最小覆盖=最大匹配.所谓最小覆盖是指选最少的点关联所有的边.容易得到将行和列看成 ...