The streaming build system based on Middleware
$ npm install mix-kernel
const Mix = require('mix-kernel');
const mix = new Mix();
mix.use(ctx => {
ctx.content = "Hello Mix";
});
mix.release();
const Mix = require('mix-kernel');
const mix = new Mix();
const browserify = require('browserify');
mix.use(ctx => {
// 此处的条件判断,需要注意循环依赖报错
if(ctx.basename == "querystring.js") {
const b = browserify();
b.require('querystring');
b.bundle((err, buf) => {
mix.fork(buf, {
// 该值不可为空,产出的文件名不能为空
path: './test/querystring.js'
}, false);
});
}
});
mix.release();
Mix Context 将文件对象封装在vfs中,为后续处理文件提供了很多有用的方法和属性。context会在每个文件流中被创建,中间件中作为参数来使用。
虚拟文件对象
查询文件信息
Stats {
dev: 16777224,
mode: 33188,
nlink: 1,
uid: 501,
gid: 20,
rdev: 0,
blksize: 4096,
ino: 12001100,
size: 6203,
blocks: 16,
atimeMs: 1589770740255.5278,
mtimeMs: 1579072670037.4934,
ctimeMs: 1579072670037.4934,
birthtimeMs: 1579071396746.5276,
atime: 2020-05-18T02:59:00.256Z,
mtime: 2020-01-15T07:17:50.037Z,
ctime: 2020-01-15T07:17:50.037Z,
birthtime: 2020-01-15T06:56:36.747Z
}
文件当前目录
文件基本目录
文件名不带文件后缀
设置文件名,支持模板变量替换。 支持模板变量替换的属性有:
- name
- basename
- filename
支持的模板有:
- [name]
- [hash]
- [basename]
- [filename]
- [ext]
ctx.name = "[name].[hash:6]";
// 得到输出的文件名:test.caf9e72.js
获取带有文件后缀的文件名,例如:test.js
设置文件名,支持模板变量替换
获取文件名
设置文件名,支持模板变量替换
获取文件的真实地址,全路径地址
设置文件的真实地址,全路径地址
获取文件的文件名后缀
设置文件的文件名后缀
获取文件所在目录
设置文件所在目录
获取文件内容,一般是Buffer类型
设置文件内容,可以是String、Buffer、Stream类型
获取文件内容hash值
获取文件domain地址
设置文件domain地址,可以用逗号分隔多个domain
获取文件的最终发布地址
设置文件的最终发布地址
错误处理句柄