手写笔无法解析@import
stylus can't resolve @import
我在将手写笔 .styl 文件编译为 css 时遇到问题。如果手写笔文件包含@import,那么我会收到 "failed to locate @import file" 错误。
例如,我有两个简单的手写笔文件:
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);
})
根据 stylus API,我试图让它在 .set('path' ...
下工作,但没有此设置。但是没有成功。
有人可以帮忙吗?
P.S。环境:OSX Mohave,节点:6.9.1,npm:6.4.1,stylus:0.54.5
更新
问题出在@import "../button.styl"
的相对路径上。如果我用 button.styl
的绝对路径替换它,它就可以工作了。但这似乎是一个很糟糕的解决方案...
好的,我刚知道。
我的问题是我试图在 .set()
方法中添加错误的路径。 idk,可能它的记录有点不清楚。
如果在 particularButton.styl
中进行相对导入,则需要添加此文件本身的路径。不是导入文件。
所以应该是:
stylus(fs.readFileSync(filePath, 'utf8'))
.set('paths', [
// path to a folder that contain "particularButton.styl"
])
我在将手写笔 .styl 文件编译为 css 时遇到问题。如果手写笔文件包含@import,那么我会收到 "failed to locate @import file" 错误。 例如,我有两个简单的手写笔文件:
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);
})
根据 stylus API,我试图让它在 .set('path' ...
下工作,但没有此设置。但是没有成功。
有人可以帮忙吗?
P.S。环境:OSX Mohave,节点:6.9.1,npm:6.4.1,stylus:0.54.5
更新
问题出在@import "../button.styl"
的相对路径上。如果我用 button.styl
的绝对路径替换它,它就可以工作了。但这似乎是一个很糟糕的解决方案...
好的,我刚知道。
我的问题是我试图在 .set()
方法中添加错误的路径。 idk,可能它的记录有点不清楚。
如果在 particularButton.styl
中进行相对导入,则需要添加此文件本身的路径。不是导入文件。
所以应该是:
stylus(fs.readFileSync(filePath, 'utf8'))
.set('paths', [
// path to a folder that contain "particularButton.styl"
])