我扫描源文件夹以获取pug文件并构建html页面。
import path from 'path';
import gulp from 'gulp';
import metalsmith from 'metalsmith';
import metalsmithInlinesource from 'metalsmith-inline-source';
import metalsmithLayouts from 'metalsmith-layouts';
import metalsmithPug from 'metalsmith-pug';
const publicFolder = 'dist/tests';
const rootFolder = path.join(__dirname,'..');
const rootPath = require("metalsmith-rootpath");
function buildTestFixtures () {
const promise = new Promise((resolve,reject) => {
metalsmith(rootFolder)
.source('test/sourcefolder')
.destination(publicFolder)
.clean(false)
.use(metalsmithPug({
doctype: 'html'
}))
.use(metalsmithInlinesource())
.use(metalsmithLayouts({
default: 'test.pug',directory: path.join(rootFolder,'config','layouts'),doctype: 'html',engine: 'pug',pattern: '**/*.html'
}))
.use(rootPath())
.build(error => {
if (error) {
reject(error);
} else {
resolve();
}
});
});
我需要实现的是:
来源
每个pug文件可用的rootPath变量应为:
因为我需要使一些资源路径动态化,所以不要像这样的硬编码路径
link(src="../../../../css/main.css",type="text/css")
我需要:
link(src=`${rootPath}css/main.css`,type=`text/css`)
但是变量rootPath未定义