本帖最后由 小刀葛小伦 于 2020-2-21 14:38 编辑
概念
node--基于 ChromeV8 的代码运行环境
node 环境安装失败
- 2503/2502 错误代码
1. 以管理员身份运行 powershell
2. 输入运行安装包命令 msiexec/package node 安装包位置
- 无法将 node 识别为 cmdlet
1. 系统会自动将 node 的安装目录放在环境变量中
2. 系统环境变量 path---查找目录中 node.exe
node
- 组成:ecmascript node 附加 api
- 可以使用 js 语法
- global 是全局对象
### nodejs 模块化开发
- exports 对象导出成员
- require 导入模块文件 返回 exports 对象 注意:require 的相对路径就是相对于当期路径
- require 查找规则
1. 带路径的模块名字:
- require 方法接收相对路径,相对于当前文件
- 先找同名 JS 文件再找同名 JS 文件夹
- 找文件夹中 index.js 否则去 package.js 中查找 main 选项确定入口文件
- 否则找不到报错
2. 不带路径的模块名字:
- Node.js 会假设它是系统模块
- Node.js 会去 node_modules 文件夹中
- 首先看是否有该名字的 JS 文件
- 再看是否有该名字的文件夹
- 如果是文件夹看里面是否有 index.js
- 如果没有 index.js 查看该文件夹中的 package.json 中的 main 选项确定模块入口文件
- 否则找不到报错
- module.exports.属性 等价 exports.属性
1. 当这两个指向的不是同一个对象时,以 module.exports 为准
2. exports=对象 不支持
系统模块
- 文件模块 fs
1. 读取文件 fs.readFile('文件路径/文件名称'[,'文件编码'],callback(err,doc)) // err 存取的是错误信息 doc 文件内容 错误优先的回调函数;
2. 写入文件 fs.writeFile('文件路径/文件名称','数据',callback(err,doc))// err 存取的是错误信息 doc 文件内容
- 如果没有这个文件,系统会自动为我们创建这个文件
- 路径模块 path
1. 不同操作系统的路径分隔符不统一
2. windows 上面是\ / 都可以
3. Linux 上是 /
4. 实际运用场景:头像上传路径拼接
5. 路径拼接:path.join('路径','路径',...)
6. 相对路径 绝对路径 大多数情况下使用绝对路径 备注:相对路径是命令行工具的当前路径
7. \_\_dirname 获取绝对路径
第三方模块 又称为 包
- js 文件存在,提供 api 接口
- 命令行工具存在
- 如何获取第三方模块 npmjs.com:第三方模块的存储和分发仓库 npm:node 的第三方模块管理工具
- 下载:npm install 模块名称
- 删除:npm uninstall 模块名称
- 全局安装与本地安装:
1. 命令行工具:全局安装
2. 库文件:本地安装
- nodemon 是命令行工具,辅助项目开发,更新项目自动执行
- nrm 是命令行工具,切换 npm 下载地址 nrm ls nrm use taobao
- gulp 基本使用 打包使用
gulp.src(),gulp.pipe(),gulp.task()
1. gulpfile.js
2. gulp.src("处理文件路径")/gulp.task("处理任务")/gulp.dest("任务完成路径")/gulp.watch()
3. gulp 插件
- gulp-htmlmin:html 文件压缩
- gulp-csso:css 压缩
- gulp-babel:js 语法转化 6 / 7 两个版本,使用 7 版本
- gulp-less:less 语法转化
- gulp-uglify:压缩混淆 js
- gulp-file-include 公共文件包含
- browsersync 浏览器实时同步
4. package.json 记录当前项目信息,包括项目名称,版本,作者,GitHub 地址,依赖了哪些第三方模块 npm init
5. package-lock.json 锁定包的版本,记录包与包之间的依赖关系
- 项目依赖:--production
- 开发依赖:--save-dev
附:gulp.task 时错误解决:
报错:
[15:51:47] The following tasks did not complete: htmlmin
[15:51:47] Did you forget to signal async completion?
1. 使用 async...await
- gulp.task('htmlmin', async () => {
await gulp
.src('./src/\*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest('dist'))
})
2. 在回调函数里面传入参数 done ,在任务执行完成之后执行 done()
- gulp.task('htmlmin', done => {
gulp
.src('./src/\*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest('dist'))
done()
})
3. gulp.task() 执行所有的任务
gulp.task('default', gulp.series(['htmlmin', 'jsmin']))
|
|