Gulp Metalsmith rootpath-将相应的路径“深度”传递给哈巴狗

我扫描源文件夹以获取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();
        }
      });
  });

我需要实现的是:

来源

Gulp Metalsmith rootpath-将相应的路径“深度”传递给哈巴狗

每个pug文件可用的rootPath变量应为:

Gulp Metalsmith rootpath-将相应的路径“深度”传递给哈巴狗

因为我需要使一些资源路径动态化,所以不要像这样的硬编码路径

link(src="../../../../css/main.css",type="text/css")

我需要:

link(src=`${rootPath}css/main.css`,type=`text/css`)

但是变量rootPath未定义

lema001 回答:Gulp Metalsmith rootpath-将相应的路径“深度”传递给哈巴狗

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3149518.html

大家都在问