node-sass-middleware 没有做任何事情

Cod*_*ein 0 sass node.js node-sass

我正在尝试使用,node-sass-middleware但它没有创建.css我的.scss文件。

我的文件结构(简化)是

- node-modules
- public
     |- common
     |     |-sass
     |     |     |-style.scss
     |     |-css
- server.js
Run Code Online (Sandbox Code Playgroud)

和代码server.js

var cssLoc =  __dirname + "\\public\\common\\css";
var cssDest =  __dirname + "\\public\\common";
console.log(cssLoc);
console.log(cssDest);
app.use(sass({
    src: cssLoc,
    dest: cssDest,
    debug: true,
    outputStyle: 'compressed'
}));

app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这不起作用。这是非常令人沮丧的。

Sir*_*dge 9

它不工作的很可能的原因是因为令人困惑的node-sass-middleware将采用其srcdest属性中指定的路径,然后查看html 中的本地css文件引用标签,获取它们引用的路径,并在指定的srcdest路径中查找那些确切的路径。

示例(在您的 app.js 文件中):

var nodeSassMiddleware = require('node-sass-middleware');

app.use(nodeSassMiddleware({
   src: path.join(__dirname, 'assets'),
   dest: path.join(__dirname, 'public')
});
Run Code Online (Sandbox Code Playgroud)

然后在您的基本 html 文件中包含一个链接标签,如下所示:

<link rel="stylesheet" type="text/css" href="/immediate/style.css"

node-sass-middleware将查找/assets/immediate/style.scss并将该文件输出到/public/immediate/style.css

一旦您意识到正在发生的事情,它实际上非常漂亮:),在您的控制台中启动您的服务器并访问浏览器中的链接,您的控制台将记录正在使用的实际源路径和目标路径。

把我的头撞在墙上一会儿想通了,希望它有帮助!