Nodejs安装以及npm与cnpm区别

本文详细介绍了Node.js的安装步骤,包括下载、安装、配置npm路径及测试。此外,还讲解了npm与淘宝镜像cnpm的区别,包括安装、使用方法和两者的不同,特别指出cnpm安装模块时会产生额外的文件夹结构。最后,文章讨论了将npm配置为使用淘宝镜像与直接使用cnpm的区别,主要体现在安装后的文件组织和卸载行为上。
摘要由CSDN通过智能技术生成

Nodejsz安装

1.下载安装包

  • Node.js 官方网站下载:https://nodejs.org/en/download/

2.安装

  • 双击打开安装,下一步下一步即可(如安装路径为“D:\Program Files\nodejs”)
  • 安装成功,测试安装是否成功,运行CMD,分别输入node -v 和 npm -v 分别查看node和npm的版本号
  • 安装完成(其中,npm随安装程序自动安装,作用就是对Node.js依赖的包进行管理)

3.配置npm在安装全局模块时的路径和缓存cache的路径

  • 因为在执行例如npm install webpack -g等命令全局安装的时候,默认会将模块安装在C:\Users\用户名\AppData\Roaming路径下的npm和npm_cache中,不方便管理且占用C盘空间
  • 所以这里配置自定义的全局模块安装目录,在node.js安装目录下新建两个文件夹 node_global和node_cache
  • 然后在cmd命令下执行如下两个命令:
  • npm config set prefix “D:\Program Files\nodejs\node_global”
  • npm config set cache “D:\Program Files\nodejs\node_cache”
  • 执行完后,配置环境变量,如下:
  • “环境变量” -> “系统变量”:新建一个变量名为 “NODE_PATH”, 值为“D:\Program Files\nodejs\node_global\node_modules”
  • “环境变量” -> “用户变量”:编辑用户变量里的Path,将相应npm的路径(“C:\Users\用户名\AppData\Roaming\npm”)改为:“D:\Program Files\nodejs\node_global”

4.测试

  • 在cmd命令下执行 npm install webpack -g 安装webpack
  • 在cmd命令下执行 webpack -v 查看webpack版本

5.cnpm安装

  • npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 输入cnpm -v

npm与cnpm区别

1.需求由来

  • 由于node安装插件是从国外服务器下载,受网络影响大,速度慢且可能出现异常。所以如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队(阿里巴巴旗下业务阿里云)干了这事。来自官网:“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
  • 也就是说我们可以使用阿里布置在国内的服务器来进行node安装。

2.使用方法

  1. 使用阿里定制的 cnpm 命令行工具代替默认的 npm,输入下面代码进行安装:
	npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. 检测cnpm版本,如果安装成功可以看到cnpm的基本信息。
	cnpm -v
  1. 以后安装插件只需要使用cnpm intall即可
    假如我已经习惯了npm install的安装方式,我不想去下载阿里的cnpm命令工具将命令变成cnpm怎么办?很容易我们想到,我直接将node的仓库地址改成淘宝镜像的仓库地址不就好了吗?

3.单次使用

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

4.永久使用

设置成全局的下载镜像站点,这样每次install的时候就不用加--registry,默认会从淘宝镜像下载,设置方法如下:
  • 打开.npmrc文件(nodejs\node_modules\npm\npmrc,没有的话可以使用git命令行建一个( touch .npmrc),用cmd命令建会报错)
  • 增加 registry =https://registry.npm.taobao.org 即可。
  • 也可以按如下方式直接在命令行设置
    npm config set registry https://registry.npm.taobao.org
  • 检测是否成功
    // 配置后可通过下面方式来验证是否成功
    npm config get registry
    // 或
    npm info express
  • 这样,我们可以使用淘宝镜像还不用更换成cnpm,是不是很爽!虽然实际都是使用的是淘宝镜像。
  • 最后附上淘宝镜像官网地址:http://npm.taobao.org/
  • 注:如果想还原npm仓库地址,只需再把地址配置成npm镜像就可以了
    npm config set registry https://registry.npmjs.org/

5.npm改成淘宝镜像与cnpm区别(20190509新增)

  • 之前一直以为npm改成淘宝镜像后和cnpm本质是一样的,今天在研究package-lock.json时候发现,这两者还是有很大区别。特记录下:
  • 先贴下对比:
    • 1.使用cnpm安装lodash
      会在node_modules文件夹下生成两个文件夹:_lodash@4.17.11@lodash和lodash
    • 2.使用改成淘宝仓库的npm安装lodash
      只剩一个npm先安装的lodash包
    • 3.通过以上会发现:
      • cnpm安装模块的时候会在node_modules文件夹生成二个文件夹,一个以下划线 _开头以及版本号组成的名字,一个正常名字的模块,文件夹名字虽然不一样,但里面文件是一样的。
      • 比如执行cnpm install lodash,会在node_modules文件夹下生成两个文件夹:_lodash@4.17.11@lodash和lodash,
      • 先执行了cnpm install lodash,然后再执行npm install lodash,npm安装的lodash会替换掉cnpm安装的lodash包(包括以下划线开头那个包),文件夹会只剩一个npm先安装的lodash包。再次npm uninstall lodash或者cnpm uninstall lodash,都会删除lodash包,此时插件包就变成空文件夹了。
      • 先执行了cnpm install lodash,然后再执行npm uninstall lodash后,此时会报错
      • npm ERR! code EINVALIDPACKAGENAME npm ERR! Invalid package name "_lodash@4.17.11@lodash": name cannot start with an underscore; name can only contain URL-friendly characters
    • 4.但是使用cnpm uninstall lodash后,不会报错,此时会删掉cnpm安装的两个包中其中一个即非下划线(正常名字)的包。剩余的那个包是可以正常通过鼠标点击打开的。然后在文件中require会报错,提示没有这个包。
      • 先执行了cnpm install lodash,然后手动删除cnpm安装的两个包中其中一个即下划线(非正常名字)的包,剩余的那个包,发现无法通过鼠标点击打开了。然后在文件中require会报错,提示没有这个包。
      • 所以,cnpm安装的的2个模块,两者应该存在引用关系,正常名字模块是非正常名字模块的索引,两者都必须存在才可以使用。但是npm安装下来就不存在这种情况了,因为只有一个正常名字模块。
      • 实测发现,尽管使用npm改成淘宝仓库,发现安装速度还是远远比cnpm慢(当模块比较多的时候)。可能应该和cnpm安装的文件结构有关系吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ719872578

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值