Node是一个基于Chrome V8引擎的JavaScript代码运行环境。
Node.js 的组成:
Node.js 是由ECMAScript 以及 Node环境提供的一些附加API组成的,包括网络、路径、文件等一些更加强大的API
ECMAScript的所有语法在Node环境中都适用
在node环境下执行js代码: 在命令行中用[node js文件名] 即可
注意,打开js文件所在的目录,按住shift键,点击鼠标右键,选择“在此处打开powershell窗口”,可以在当前目录下打开命令行工具。
浏览器中的全局对象是window
Node环境中的全局对象是global
一个模块就是一个js文件,模块内部的变量、函数等外部无法访问。
模块成员导出,供其他模块使用:用exports对象
模块引入其他模块的成员:用require()方法
例:
导出a.js模块中的成员,给exports对象添加属性,或者module.exports,通常二者是同一个对象,但如果二者指向不同对象时,以module.exports为准
// a.js var obj = { name: 'zhang' } function add(x, y) { return x+y; } // 给exports对象添加add属性,为加法函数,供其他模块使用 exports.add = add; // 或者使用 module.exports module.exports.obj = obj
在b.js模块中通过require方法导入a,并使用a中的成员
var a = require('./a.js'); // 参数为a.js的文件路径,require方法返回a.js中的exports对象 var r = a.add(1,2); console.log(r); console.log(a.obj.name);
系统模块就是node运行环境所提供的API,比如用于文件相关操作的fs模块,处理路径的path模块
var path = require("path"); console.log(__dirname); path.join(__dirname, "文件名");
别人写好的,具有特定功能的,可供我们直接使用的模块。
由多个文件组成的文件夹称为包
第三方模块有两种形式:
第三方模块的安装与卸载:
是npm下载地址切换工具,npm默认下载地址是国外的,国内下载速度慢。
nrm的使用:
nodemon是一个命令行工具,辅助项目开发。
用npm install nodemon -g 下载安装,用nodemon命令代替node执行js文件,可以在文件修改时不必重新执行。
Gulp是基于node开发的前端构建工具,将机械化的操作编写成任务,只需要在命令行中输入命令执行相应的任务就可以代替复杂的手工操作。
比如:html,js,css文件压缩,公共文件抽离,CS6,less等语法转换,修改文件浏览器自动刷新等。
gulp的使用:
gulp任务编写:
gulp插件:
gulp插件的使用:
gulp.task('default', ['task1','task2',....]);
在项目中安装gulp会生成一个node_modules文件夹,存在文件过多过碎,项目拷贝的时候速度会很慢,
复杂的依赖关系需要被记录,确保模块版本和当前一致,否则项目可能无法运行。
解决方法:传输项目时不传输node_modules文件夹,用package.json文件记录项目的描述信息,只传递该文件即可,拿到项目文件夹时,在项目根目录下打开命令行,输入npm install命令,就会根据package.json文件中的dependencies中的依赖库下载需要的库。
在项目根目录下打开命令行,用npm init -y命令可以快速生成package.json文件。
项目依赖和开发依赖:
在package.json文件中记录了两种依赖:
在拿到项目时,在根目录下打开命令行,输入npm install命令可以安装全部的依赖;输入npm install --production命令,可以仅下载项目依赖
命令别名
在package.json文件中有scripts属性,记录了命令的别名。
比如:给nodemon index.js 命令 起一个别名build
则执行index.js 只需输入 npm run build即可