我试图将Stylus纳入基于Ember-cli的项目中。 On' ember s'手写笔正在根据需要编译app.styl和所有导入的样式表,但是在接收更改时,运行将经常失败并且不一致地重新编译。
版本;
应用/风格/ app.styl;
@import "reset";
@import "config";
@import "site-header";
@import "site-footer";
@import "login-bar";
body {
color: white;
}
每个导入的样式文件也位于' app / styles /'文件夹中。
的package.json;
"devDependencies": {
"body-parser": "^1.2.0",
"broccoli-asset-rev": "0.1.1",
"broccoli-ember-hbs-template-compiler": "^1.6.1",
"broccoli-merge-trees": "^0.1.4",
"broccoli-stylus-single": "~0.3.0",
"ember-cli": "0.0.46",
"ember-cli-ic-ajax": "0.1.1",
"ember-cli-inject-live-reload": "^1.0.2",
"ember-cli-qunit": "0.1.0",
"ember-data": "1.0.0-beta.10",
"express": "^4.8.5",
"glob": "^4.0.5"
}
如果我对app.styl进行更改,Ember-cli会识别出这一点,请相应地重新构建和更新asset / project_name.css文件。但是,如果对导入的app.styl子项进行更改(例如" site-footer",Ember-cli将不一致地重新构建并按预期更新.css。它通常适用于第一次尝试然后忽略此后的所有进一步变化(对任何儿童风格)。
唯一的解决方案是终止并重新运行“#ember s'。
其他信息
我试图通过改变默认值来强制在Brocfile.js中重新编译...
// Ember
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp();
module.exports = app.toTree();
..以下......
// Ember
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp();
// Stylus
var mergeTrees = require('broccoli-merge-trees');
var compiledStylus = require('broccoli-stylus-single');
var stylus = compiledStylus(['app/styles'], 'app.styl', 'assets/project_name.css', {
'include css': true,
'compress': true,
});
module.exports = mergeTrees([app.toTree(), stylus], { overwrite: true });
..只会导致相同的问题重复自身,找到文件更改两次,但会产生相同的问题。
答案 0 :(得分:0)
问题出在Stylus缓存上,通过对...进行更改来修复。
node_modules / broccoli-stylus-single / index.js(第35行);
var stylusOptions = {
filename: includePathSearcher.findFileSync(self.inputFile, includePaths),
paths: includePaths,
cache: false,
}
或者可以通过brocfile中的options参数手动修复。