专栏首页王念博客简单了解 node npm cnpm

简单了解 node npm cnpm

一、nodeJs

1、node介绍

nodeJs是基于Chrome v8的js运行环境,简单的说, 就是运行在服务端的 JavaScript。不懂得像PHP、Python或Ruby等动态编程语言又想创建自己的服务(例如:前端程序员),Node.js是一个非常好的选择。

2、node安装、更新

如果你所使用的 node 版本已不再被官方支持(Node 0.4、0.6、0.10 和 iojs 都已不再被官方支持)或者是非稳定版(版本号为奇数,如 0.7.x、0.9.x 等),并且在使用过程中遇到了问题:

(1)检查当前所使用的 node 版本:

node -v

(2)Windows 系统中更新 node:

https://nodejs.org/download 下载最新的 msi 安装包并安装,中文官方下载地址:http://nodejs.cn/download/ ,或者通过 homebrew 安装

ps:Homebrew是一款Mac OS平台下的软件包管理工具,有安装、卸载、更新、查看、搜索等功能。你不用关心各种依赖和文件路径的情况,简单的一条指令,就可以实现包管理。

brew install node

(3)Node.js 发布了很多版本,使用一个版本管理器(NVMnodistnnavenodebrew)在同一台电脑管理多个node版本,是保持版本更新的简单方式

3、node使用

Node.js 模块是一种可以发布到 npm 的包。当你创建一个新模块时,创建 package.json 文件是第一步。

你可以使用 npm init 命令创建 package.json 文件。之后,还需要创建模块的入口文件。默认文件名是 index.js

index.js中,添加一个函数,作为 exports对象的一个属性。

exports.printMsg = function() {
  console.log("This is a message from the demo package");
}

这样,在其他代码中 require("index") 就可以使用这个函数了。

详细教程参见:https://www.runoob.com/nodejs/nodejs-tutorial.html

二、npm

1、npm介绍

npm 是nodeJs环境下“安装”开源JS库的工具,由三部分组成:

网站:网站是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径

注册表:registry,是一个巨大的数据库,保存了每个包(package)的信息

命令行工具 :CLI,通过命令行或终端运行,开发者通过 CLI 与 npm 打交道

2、npm安装、更新

(1)安装nodeJs就安装好了npm

(2)测试版本 : npm -v

(3)安装最新版本:npm install npm@latest -g

(4)安装下个版本:npm install npm@next -g

3、npm使用

(1)npm安装包:本地安装和全局安装

本地安装:如果你自己的模块依赖于某个包,并通过 NodeJs 的 require 加载,那么你应该选择本地安装,下载的包将保存到node_modules目录下。

npm install <Module Name>

eg,安装vue 百度地图插件到我的移动h5“项目”中使用:

全局安装:如果你想将包作为一个命令行工具,(比如 grunt CLI),那么你应该选择全局安装。

npm install -g <Module Name>

安装vue cli 3到我的“电脑”中搭建vue脚手架使用,eg:

安装完成后,它便可以通过“命令行”使用,eg:

ps.

--save :记录在 package.json的“dependencies(运行时所需要的包)”,eg

npm i --save vue-baidu-map // i 是 install 的缩写,就像 -v 是-version的缩写, 同样的 --save 也可以缩写为 --s

--save-dev:记录在 package.json的“devDependencies(开发时依赖的插件,会打包至线上)”里,eg:

// PS: 你也可以直接使用“npm install less vue-loader -D”(D大写)

结果如下图:

(2)npm更新安装包

更新本地安装包:

npm update

eg,更新本地安装的 vue-baidu-map 包:

更新全局安装包:

npm update -g

eg,更新全局安装的 @vue/cli 包

(3)卸载npm安装包

卸载本地安装包

npm uninstall <package>

eg,卸载本地安装的 vue-baidu-map 包:

卸载全局安装包

npm uninstall -g <package>

ps. 如需从 package.json 文件中删除依赖,需要在命令后添加参数 --save

npm uninstall --save <package>

三、淘宝 NPM 镜像

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步,支持 npm 除了 publish 之外的所有命令

1、安装

(1)临时使用

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

(2)持久使用

npm config set registry https://registry.npm.taobao.org
//可以用npm config get registry/npm info express 验证

(3)通过cnpm使用

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm -v  //成功后会有版本信息返回,不成功有可能是node版本低

操作如下:

2、使用

官网: http://npm.taobao.org/

(1)成功安装后,直接用cnpm代替之前的npm,安装模块:

cnpm install -g <Module Name>

-g表示全局安装,本地安装不需加。

(2)同步模块 ,直接通过 sync 命令马上同步一个模块(只有 cnpm 命令行才有此功能)

$ cnpm sync connect

(3)支持 npm 除了 publish 之外的所有命令

npm publish: 把自己的项目包发布到npm 上 ,供别人 npm install 安装使用

(4)更新

cnpm update -g

(5)替换

修改官方源(npm)为源地址

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

修改源地址为官方源(npm)

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

博客地址:https://my.oschina.net/wangnian

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • dubbox Web管理部署

    前言:使用dubbo rpc远程调用,对于开发者或运维来说需要监控服务或者服务治理,所以需要搭建一些dubbo监控程序。

    王念博客
  • SpringBoot之Dubbox

    上次springboot集成dubbo写过一个简单的demo调用的方式,由于spring版本的问题,这次使用duboox,完全基于注解的方式。

    王念博客
  • SpringBoot之Dubbo

    DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,...

    王念博客
  • npm下载报错情况的处理

    npm是一个非常强大的包管理器,基本上前端需要的插件和框架在这上面都有,所以本人一直只用这个,其他的一律先忽视。然而使用npm时有时候会出现error以及无法下...

    NateHuang
  • 使同事羡慕不已的8个npm命令

    这篇文章会为你揭示一些有用的 npm 技巧,由于篇幅原因不可能涵盖所有,所以我选择了工程师日常相关且有用的作为本篇文章的关注点。 基本简写 为了大家保持一致,特...

    前端黑板报
  • 捉虫记:Unexpected end of JSON input while parsing

    npm 的源码在 https://github.com/npm/cli,找到以下 Issue

    山月
  • windows 上优雅的安装 node 和 npm

    我一直觉得我掌握的这份优雅是被许多人所知道了,直到我发现小伙伴们都下载 .msi 来装 node ,我心中的优雅感终于压制不住。 .msi 安装 windows...

    IMWeb前端团队
  • 前端踩坑系列《六》——让人又爱又恨的npm包

    作为一个前端,我们经常在执行一个命令的时候报错,那就是 npm install,那么 npm install 的时候,程序到底做了什么,还有遇到一些类似的问题的...

    GopalFeng
  • npm

    本来打算暑假将自己每天学到的东西写下来,每天做成一篇文章的,结果现在每周能产出一篇文章就不错了。。。【掩面】。。今天学了点npm命令行操作,就写一下

    Ewall
  • npm 模块安装机制简介

    npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。 ? 正因为有了npm,我们只要一行命令,就能安装别人写好的模块 。 ...

    ruanyf

扫码关注云+社区

领取腾讯云代金券