nodejs的安装使用与npm的介绍


Posted in NodeJs onSeptember 11, 2019

Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。本文详细介绍了Node.js的安装和使用。

一、Node.js介绍

Node.js 不是一个 JavaScript 框架,不同于CakePHP、Django、Rails。Node.js 更不是浏览器端的库,不能与 jQuery、ExtJS 相提并论。Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

二、Node.js安装

windows环境安装Node.js

在浏览器地址栏输入https://nodejs.org/en/, 进入Node.js官网后,点击下载左边的稳定版本,如下图所示:

nodejs的安装使用与npm的介绍

下载完成之后,开始安装,点击Next

nodejs的安装使用与npm的介绍

Next

nodejs的安装使用与npm的介绍

如果不需要修改安装路径,Next

nodejs的安装使用与npm的介绍

Next

nodejs的安装使用与npm的介绍

Install

nodejs的安装使用与npm的介绍

打开命令行工具,开始->运行->cmd->回车, 输入node,如果提示如下,则安装成功,否则需要手动配置环境变量,或者重新安装,安装成功后,我们可以进行JavaScript语言测试:

nodejs的安装使用与npm的介绍

Mac环境安装Node.js

直接使用brew包管理器进行安装,并根据提示添加环境变量,然后输入node进行测试:

nodejs的安装使用与npm的介绍

以上就是Node.js分别在Windows和Mac环境下的安装介绍。

三、npm

任何一门计算机语言都包含了丰富的第三方库,npm就是JavaScript这门语言的第三方库管理工具,本文详细介绍了JavaScript的包管理工具,npm。

在计算机中安装好Node.js之后,默认已经安装好了npm包管理工具,我们可以输入npm命令进行测试:

nodejs的安装使用与npm的介绍

使用npm包管理工具安装第三方库

安装好npm包管理工具之后,我们来介绍两种安装npm包的方式:全局安装和局部安装

全局安装

如果你想将该第三方库作为一个命令行工具,并且任何项目都可用,那么你应该将其安装到全局。使用这种安装方式,可以让你在任何目录下使用这个包,安装全局包的方式如下:

npm install -g <package>

全局方式安装的npm包,全局可用。

本地安装方式一

npm init
npm install vue@2.5.17

以上方式安装的npm包,只在当前目录下可用,该方式安装的包:

- 会把包安装到node_modules目录中
- 不会新增并修改package.json
- 运行npm install不会自动安装该包

本地安装方式二

npm init
npm install vue@2.5.17 --save

本地?save方式安装的npm包,只在当前目录下可用,该方式安装的包:

- 会把包安装到node_modules目录中
- 会在package.json的dependencies属性下添加包
- 运行npm install命令时,会自动安装包到node_modules目录中

本地安装方式三

npm init
npm install vue@2.5.17 --save-dev

采用上述第三种方式安装的npm包,只在当前目录下可用,该方式安装的包:

- 会把包安装到node_modules目录中
- 会在package.json的Devdependencies属性下添加包
- 运行npm install命令时,不会自动安装包到node_modules目录中

卸载全局包

`npm uninstall <package> -g`

卸载本地

npm uninstall <package> -S, --save: Package will be removed from your dependencies.
npm uninstall <package> -D, --save-dev: Package will be removed from your devDependencies.

通过npm安装JavaScript第三方库时,访问的是国外的站点,访问速度会比较慢,此时我们可以使用国内的镜像站,cnpm,详细的使用方式请参考http://npm.taobao.org/

安装cnpm后,使用方式如下:

cnpm install vue

以上就是npm包的安装和卸载介绍。

但是,当我们需要维护多个独立的项目环境时, 比如项目一需要Vue2.5.10支持,而项目二需要最新的Vue2.5.17,我们应该分别为项目一和项目二创建独立的、与外界隔离的第三方库环境。而不是在当前目录下使用本地或者全局方式安装npm包。

我们应该创建一个文件夹,并将该文件夹初始化为npm包环境,使用方式如下:

mkdir myproject
cd myproject
npm init

使用npm init初始化项目环境的时候,会出现如下提示:

Press ^C at any time to quit.
package name: (myproject) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /Users/pizza/Downloads/myproject/package.json:

{
 "name": "myproject",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC"
}


Is this OK? (yes)

按需填入上述信息,最后输入yes,项目环境初始化完毕。如果使用默认信息,可以直接使用npm init -y进行初始化。

上面的信息依次是:

name 项目名称
version 项目的版本号
description 项目的描述信息
entry point 项目的入口文件
test command 项目启动时脚本命令
git repository 如果你有 Git 地址,可以将这个项目放到你的 Git 仓库里
keywords 关键词
author 作者
license 项目要发行的时候需要的证书

查看特定package的信息

npm ls <package>

更新package

npm update <package>

搜索package

`npm search <package>`

package.json详解

随着项目的不断丰富,package.json文件也会跟随着不断的复杂,接下来,介绍几个在上述没有的条目:

"private": true,
 "dependencies": {
 "antd": "^2.11.1",
 "classnames": "^2.2.5"
 },
 "devDependencies": {
 "axios": "^0.15.3",
 "babel-eslint": "^6.1.2"
 },
 "bin": {
 "dk-cli": "./bin/dk-cli.js"
 },
 "scripts": {
 "start": "node index.js"
 },
 "engines": {
 "node": ">=6.9.0",
 "npm": ">=3.10.10"
 }
 "publishConfig": {
 "registry": "http://gongsineibu/nexus/repository/npm-hosted/"
 }

private可选字段,布尔值。如果 private 为 true,npm 会拒绝发布。这可以防止私有 repositories 不小心被发布出去;

dependenciesdevDependencies

在开发阶段,我们需要对开发的模块进行单元测试,这时在开发环境 devDependencies 下就要安装单元测试模块 Mocha。

在生产环境 dependencies,用户直接使用项目,此时项目的开发已全部完成。这时就不需要单元测试模块了,再加上只会影响性能。

dependencies 指定了项目生产环境时所依赖的模块,devDependencies 制定了项目开发环境时所依赖的模块。

scripts该字段指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。

下面的设置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint时,所要执行的命令;

"scripts": {
 "dev": "node build/dev-server.js",
 "build": "node build/build.js",
 "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
 "test": "npm run unit",
 "lint": "eslint --ext .js,.vue src test/unit/specs"
 }

engines字段指定依赖的node版本

publishConfig

当我们开发完自己的项目想要将它发布到 Npm 仓库就需要使用这个属性。默认情况下我们是往 Npm 公共仓库中发布包,默认地址是:https://www.npmjs.com/,此时在 package.json 文件中可以不加这个属性。

但是如果公司内部搭建了 Npm 私有仓库,此时发布包就不是往 https://www.npmjs.com/ 这个地址上发布了,而是公司内部提供的地址,如:http://gongsineibu/nexus/repository/npm-hosted/。此时配置如下:

"publishConfig": {
 "registry": "http://gongsineibu/nexus/repository/npm-hosted/"
 }

publicConfig 字段决定了我们的包发布到哪里。

总结

以上所述是小编给大家介绍的nodejs的安装与npm的介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

NodeJs 相关文章推荐
nodejs win7下安装方法
May 24 NodeJs
基于html5和nodejs相结合实现websocket即使通讯
Nov 19 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
详解nodejs http请求相关总结
Mar 31 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 NodeJs
Nodejs 识别图片类型的方法
Aug 15 NodeJs
nodejs实现聊天机器人功能
Sep 19 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 #NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 #NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 #NodeJs
nodejs文件夹深层复制功能
Sep 03 #NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 #NodeJs
nodejs简单抓包工具使用详解
Aug 23 #NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 #NodeJs
You might like
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
Seajs的学习笔记
2014/03/04 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
大学生自荐书范文
2013/12/10 职场文书
有关打架的检讨书
2014/01/25 职场文书
迎元旦广播稿
2014/02/22 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
单位实习鉴定评语
2015/01/04 职场文书
入伍通知书
2015/04/23 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
人民调解协议书
2016/03/21 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技