手写笔无法解析@import

时间:2018-12-16 15:37:16

标签: node.js stylus

我在将手写笔.styl文件编译为CSS时遇到问题。如果手写笔文件包含@import,则出现“无法找到@import文件”错误。 例如,我有两个简单的手写笔文件:

root
  - specific
     - particularButton.styl
  - button.styl

// --- button.styl ---
.button
  // some styles

// --- specific/particularButton.styl ---
@import "../button.styl"
.particular-button
    // some styles

并且我正在尝试通过使用以下代码将它们转换为CSS:

const stylus = require('stylus');
const fs = require('fs');

const filePath = // path to particularButton.styl

stylus(fs.readFileSync(filePath, 'utf8'))
    .set('paths', [
        // path to a folder that contain "button.styl"
    ])
    .render(function(err, css) {
        console.log(err);
        // <some action like> fs.writeFileSync(cssFileName, css);
    })

根据手写笔API,我尝试使其与.set('path' ...一起使用并且没有此设置。但是没有成功。

有人可以帮忙吗?

P.S。环境:OSX Mohave,节点:6.9.1,npm:6.4.1,手写笔:0.54.5

更新

问题出在@import "../button.styl"的相对路径中。如果我将其替换为button.styl的绝对路径,它将可以使用。但这似乎是一个很糟糕的解决方案...

1 个答案:

答案 0 :(得分:0)

好,我才发现。

我的问题是我正在尝试在.set()方法中添加错误的路径。可能是记录不清楚,idk。

如果在particularButton.styl中进行相对导入,则必须添加此文件本身的路径。不是导入文件。 所以应该是:

stylus(fs.readFileSync(filePath, 'utf8'))
    .set('paths', [
        // path to a folder that contain "particularButton.styl"
    ])