将参考路径替换为文件内的特定路径。
npm install --save-dev gulp-url-transform
gulp js 代码
const transform = require("gulp-url-transform");
gulp.task("build:absolute:all", ()=>{
gulp.src("./t_static/**/**")
.pipe(transform.toAbsolute())
.pipe(gulp.dest('./t_static/'));
});
文件输入代码
body{
background-image: url(__uri(../images/bg1.png));
}
文件输出代码
body{
background-image: url("/t_static/business/images/bg1.png");
}
假设你有如下这个结构:
t_static
|-- business
| |-- css
| | `-- index.css
| |-- image
| | `-- bg.png
| |--js
| | `-- index.js
| `--index.html
`-- gulp.js
在 /t_static/business/css/index.css
中有如下内容:
body{
background-image: url(__uri(../images/bg1.png));
}
在 /t_static/business/js/index.js
中有如下内容:
let file = "__uri(../images/bg.png)";
在 /t_static/business/input.html
中有如下内容:
<!DOCTYPE html>
<html>
<head>
<title>首页</title>
<link rel="stylesheet" href="__uri(./css/index.css)">
</head>
<body>
</body>
</html>
在 /gulp.js
中有如下内容:
const gulp = require("gulp");
const transform = require("gulp-url-transform");
gulp.task("default", ()=>{
gulp.src("./t_static/**/**")
.pipe(transform.toAbsolute({
debug: true
}))
.pipe(gulp.dest('./t_static/'));
});
执行 gulp
命令
输出 /t_static/business/css/index.css
如下内容:
body{
background-image: url("/t_static/business/images/bg1.png");
}
输出 /t_static/business/js/index.js
如下内容:
let file = "/t_static/business/images/bg.png";
输出 /t_static/business/input.html
如下内容:
<!DOCTYPE html>
<html>
<head>
<title>首页</title>
<link rel="stylesheet" href="/t_static/business/css/index.css">
</head>
<body>
</body>
</html>
在替换前和替换后对指定路径进行修改
gulp.src("./t_static/**/**")
.pipe(transform.toAbsolute({
debug: true,
before(relPath, file){
return relPath;
},
after(absPath, file){
// return "http://www.baidu.com"+absPath;
return absPath;
}
}))
.pipe(gulp.dest('./t_static/'));
transform.toAbsolute(options)
options
:base
: (默认.
) 文档根的路径.keyword
: (默认__uri
) 转换这个关键字包含的URL.debug
:(默认false
) 是否显示转换信息before
: (默认空方法(relPath, file) => relPath
) 转换前调用relPath
: 待转换的相对路径file
: 转换路径所在文件path
: 文件路径contents
: 文件内容
after
: (默认空方法(absPath, file) => absPath
) 转换后调用absPath
: 转换后的绝对路径file
: 转换路径所在文件path
: 文件路径contents
: 文件内容
transform.toRelative(options)
options
:base
: (默认.
) 文档根的路径.keyword
: (默认__uri
) 转换这个关键字包含的URL.debug
:(默认false
) 是否显示转换信息before
: (默认空方法(absPath, file) => absPath
) 转换前调用absPath
: 待转换的绝对路径file
: 转换路径所在文件path
: 文件路径contents
: 文件内容
after
: (默认空方法(relPath, file) => relPath
) 转换后调用relPath
: 转换后的相对路径file
: 转换路径所在文件path
: 文件路径contents
: 文件内容
Gulp-url-transform is licensed under the MIT license. (http://opensource.org/licenses/MIT)
Copyright (c) 2017-present