在 Heroku 上使用 node-sass 动态渲染 scss 文件
Render scss file dynamically with node-sass on Heroku
我目前正在尝试渲染带有一些动态变量的 scss 文件。在我的本地机器上一切正常。在 Heroku 上我得到这个错误:
Error: File to import not found or unreadable: bower_components/sass-mixins/mixins
const fs = require('fs');
const sass = require('node-sass');
var path = 'assets/compiled/' + client.id + '.css';
var dynamic = '$brand-primary: #CCC;';
fs.readFile('assets/scss/application.scss', function(err, data) {
sass.render({
data: dynamic + data,
includePaths: [
__dirname + '/../../',
__dirname + '/../../bower_components'
]
}, function(err, result) {
// do sth. with result
});
});
我已经玩过 includePaths
添加了 process.cwd()
、__dirname
、../../
等等。
assets/scss/application.scss
看起来像这样:
$brand-primary: #306bb3 !default;
$brand-success: #ffb034 !default;
$gray-lighter: #e4e8ea !default;
$gray-lightest: #f5f5f5 !default;
$gray-dark: #555555 !default;
@import "bower_components/sass-mixins/mixins";
@import "bower_components/bootstrap/scss/bootstrap.scss";
@import "bower_components/font-awesome/scss/font-awesome";
@import "bower_components/fatcow-icons/flags-16px.css";
@import "bower_components/cookieconsent/build/cookieconsent.min.css";
@import "assets/scss/_partials/_layout";
我不知道为什么它在我的机器上工作得很好,但在 Heroku 上却不行...
问题很可能是 bower install
在部署期间未被调用
我目前正在尝试渲染带有一些动态变量的 scss 文件。在我的本地机器上一切正常。在 Heroku 上我得到这个错误:
Error: File to import not found or unreadable: bower_components/sass-mixins/mixins
const fs = require('fs');
const sass = require('node-sass');
var path = 'assets/compiled/' + client.id + '.css';
var dynamic = '$brand-primary: #CCC;';
fs.readFile('assets/scss/application.scss', function(err, data) {
sass.render({
data: dynamic + data,
includePaths: [
__dirname + '/../../',
__dirname + '/../../bower_components'
]
}, function(err, result) {
// do sth. with result
});
});
我已经玩过 includePaths
添加了 process.cwd()
、__dirname
、../../
等等。
assets/scss/application.scss
看起来像这样:
$brand-primary: #306bb3 !default;
$brand-success: #ffb034 !default;
$gray-lighter: #e4e8ea !default;
$gray-lightest: #f5f5f5 !default;
$gray-dark: #555555 !default;
@import "bower_components/sass-mixins/mixins";
@import "bower_components/bootstrap/scss/bootstrap.scss";
@import "bower_components/font-awesome/scss/font-awesome";
@import "bower_components/fatcow-icons/flags-16px.css";
@import "bower_components/cookieconsent/build/cookieconsent.min.css";
@import "assets/scss/_partials/_layout";
我不知道为什么它在我的机器上工作得很好,但在 Heroku 上却不行...
问题很可能是 bower install
在部署期间未被调用