1 node.js的安装
1.1 官方网站
https://nodejs.org/en/
1.2 需要配置环境变量
1.3 成功标志
1.4 node.js中的全局对象global
console.log() 在控制台中输出
setTimeout() 设置超时定时器
clearTimeout() 清除超时时定时器
setInterval() 设置间歇定时器
clearInterval() 清除间歇定时器
2 三方包gulp安装
2.1 安装nodemon 软件包
由于网络被强一直安装不上
npm install nodemon -g
解决方案,使用国内的软件源
1.npm --registry https://registry.npm.taobao.org install -g + 包名
2.npm install -g cnpm --registry=https://registry.npm.taobao.org 来安装一个cnpm,然后再用cnpm install -g 包名
2.2 前端构建工具 gulp
基于node平台开发的前端构建工具,将机械化操作编写成任务, 想要执行机械化操作时执行一个命令行命令任务就能自动执行了
用机器代替手工,提高开发效率
项目上线,HTML、CSS、JS文件压缩合并
语法转换(es6、less …)
公共文件抽离
修改文件浏览器自动刷新
cnpm install gulp
gulp.src():获取任务要处理的文件
gulp.dest():输出文件
gulp.task():建立gulp任务
gulp.watch():监控文件的变化
//gulp插件
gulp-htmlmin :html文件压缩
gulp-csso :压缩css
gulp-babel :JavaScript语法转化
gulp-less: less语法转化
gulp-uglify :压缩混淆JavaScript
gulp-file-include 公共文件包含
browsersync 浏览器实时同步
const gulp = require('gulp');
// 使用gulp.task()方法建立任务
gulp.task('first', () => {
// 获取要处理的文件
gulp.src('./src/css/base.css')
// 将处理后的文件输出到dist目录
.pipe(gulp.dest('./dist/css'));
});
3 package.json文件
3.1 node_modules文件夹的问题
文件夹以及文件过多过碎,当我们将项目整体拷贝给别人的时候,,传输速度会很慢很慢.
复杂的模块依赖关系需要被记录,确保模块的版本和当前保持一致,否则会导致当前项目运行报错
3.2 package.json文件的作用
项目描述文件,记录了当前项目信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等。
使用npm init -y命令生成。
3.3 项目依赖
在项目的开发阶段和线上运营阶段,都需要依赖的第三方包,称为项目依赖
使用npm install 包名命令下载的文件会默认被添加到 package.json 文件的 dependencies 字段中
{
"dependencies": {
"jquery": "^3.3.1“
}
}
3.4 package-lock.json文件的作用
锁定包的版本,确保再次下载时不会因为包版本不同而产生问题
加快下载速度,因为该文件中已经记录了项目所依赖第三方包的树状结构和包的下载地址,重新安装时只需下载即可,不需要做额外的工作
4 node.js中模块加载机制
4.1 模块查找规则-当模块拥有路径但没有后缀时
require('./find.js');
require('./find');
require方法根据模块路径查找模块,如果是完整路径,直接引入模块。
如果模块后缀省略,先找同名JS文件再找同名JS文件夹
如果找到了同名文件夹,找文件夹中的index.js
如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找main选项中的入口文件
如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到
4.2 模块查找规则-当模块没有路径且没有后缀时
require('find');
Node.js会假设它是系统模块
Node.js会去node_modules文件夹中
首先看是否有该名字的JS文件
再看是否有该名字的文件夹
如果是文件夹看里面是否有index.js
如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件
否则找不到报错