A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小刀葛小伦 黑马粉丝团   /  2020-2-21 14:36  /  1464 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小刀葛小伦 于 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']))

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马