1、node的模块导出
被导出的模块helloworld.js
const add=(n1,n2)=>n1+n2;
exports.add=add;//第一个add是export对象的属性,第二个add是自定义的函数
导入的模块moudle.js
let a=require('./helloworld')//导入响应的模块文件
console.log(a.add(34,5))
2、模块成员导出的另外一个方法
被导出的模块helloworld.js
let version='1.0';
let sayhi=function(n1,n2){
let result=n1+n2;
console.log('hi'+result)
}
module.exports.version=version;
module.exports.sayhi=sayhi;
导入的模块moudle.js
let a=require('./helloworld')
console.log(a.sayhi(34,5))
console.log(a.version)
又或
被导出的模块helloworld.js
const greeting=name=>`hello ${name}`;//注意这里是反引号,不是单引号
module.exports.greeting=greeting;
导入的模块moudle.js
let a=require('./helloworld')
console.log(a.greeting('zhangsan'))
exports是module.exports的别名,但是当exports和module.exports指向的不是同一个对象的时候,以module.exports为准
3、系统模块fs文件读取操作
被读取的文件helloworld.js
const greeting=name=>`hello ${name}`;//注意这里是反引号,不是单引号
module.exports.greeting=greeting;
读取文件的语法格式
const fs=require(‘fs’);
fs.readFile(’./helloworld.js’,‘utf-8’,callback())
const fs=require('fs');//引用系统模块
fs.readFile('./helloworld.js','utf-8',(err,doc)=>{
if (err==null){//如果文件读取错误err的值为null,如果读取成功,doc是文件内容
console.log(doc)
}
})
3、系统模块fs文件写入操作
fs.writeFile(‘路径/文件名称’,‘数据’,callback)
const fs=require('fs');
let content='here is some words i want to say';
fs.writeFile('./helloworld.js',content,err=>{
if (err!==null){
console.log(doc)
return
}
console.log('file is writen successfully')
})
4、系统模块path路径操作
不同操作系统的路径分隔符不一样,因此要只能判断一下服务器的操作系统来决定使用斜杠还是反斜杠
4.1、路径拼接语法
path.join(‘path1’,‘path2’)
const path=require('path');
let finnalPath=path.join('itcast','a','b','c')
console.log(finnalPath)
4.2、相对路径vs绝对路径
相对路径有时候相对的是命令行工具的当前工作目录
在读取文件或设置文件路径时都会选择绝对路径
使用__dirname获取当前文件所在的绝对路径
const path=require('path');
let finnalPath=path.join(__dirname,'itcast','a','b','c')//注意是两个下划线组成的__dirname
console.log(finnalPath)
4.3、获取第三方模块
使用npm install 模块名称 安装模块
使用npm uninstall 模块名称 卸载模块
本地安装与全局安装(所有项目都可以使用,实际上在服务器范围内安装)
5、第三方模块nodemon
nodemon是一个命令行工具,用来取代node,可以在线直接执行,不要每次都编译执行
安装:npm install nodemon -g
以后执行直接使用 nodemon 模块名执行
退出nodemon使用ctrl+c
6、第三方模块nrm
替代npm,是npm的下载地址切换工具
安装:npm install nrm -g
使用 npm ls查看可用地址
使用nrm use taobao 使用淘宝下载源
7、第三方模块Gulp
基于node平台开发的前端构建工具,将机械化操作编写成任务,然后自动去执行(有点封装复用的概念),用来提高开发效率
能做什么呢
项目上线,html,css,js文件压缩合并
语法转换es6,less
公共文件抽离
修改文件浏览器自动刷新
8、Gulp的使用
- 使用npm install gulp下载gulp库文件
- 在项目根目录下建立gulpfile.js文件**(约定文件名,不得修改)**
- 重构项目文件夹结构,src目录放置源代码文件,dist目录放置构建后文件。
- 在gulpfile.js中编写任务
- 在命令行工具中执行gulp任务
9、Gulp中提供的方法
gulp.src():获取任务要处理的文件
gulp.dest():输出文件
gulp.task():建立gulp任务
gulp.watch():监控文件的变化
gulpfile.js
//引入第三方gulp模块
const gulp=require('gulp')
//使用gulp.task创建任务
gulp.task('first',()=>{//first 是任务的名称,第二个是回调函数
console.log('my first gulp task')
//获取要处理的文件
gulp.src('./src/css/base.css')
//将处理好的文件输出到dist目录
.pipe(gulp.dest('./dist/css'))//pipe是处理的意思,
})
执行这个gulpfile.js需要下载一个命令行工具(脚手架)
npm install gulp-cli -g
在命令行下执行任务:
gulp 任务名称
gulp first
9、Gulp插件
官网:npmjs.com
- gulp-htmlmin:html文件压缩
- gulp-css:css文件压缩
- gulp-babel:JavaScript语法转化
- gulp-less:less语法转化
- gulp-gulify:压缩混淆javascript
- gulp-fileinclude公共文件包含
- browsersync浏览器实时同步
使用方法
下载,引入,调用插件
npm install gulp-htmlmin
const htmlmin=require('gulp-htmlmin')
const gulp=require('gulp')
gulp.task('htmlmin',()=>{
gulp.src('./src/*.html')
//压缩html文件中的代码
.pipe(htmlmin({collapseWhitespace: true}))//是否压缩空格
})
10、package.json文件作用
记录了锁依赖的第三方模块
npm init 初始化package.json文件
参见之前写的代码,俩月了,都快忘了看过了