2014-09-29 110 views
1

我试图将手写笔纳入基于Ember-cli的项目中。在'ember'上,手写笔根据需要编译app.styl和所有导入的样式表,但在运行时会经常失败并且不一致以在接收到更改时重新编译。手写笔重新编译与Ember-cli不一致

版本;

  • 烬-CLI 0.0.46
  • 节点0.10.32
  • NPM 1.5.0-α-4-

应用程序/风格/ app.styl;

@import "reset"; 
@import "config"; 
@import "site-header"; 
@import "site-footer"; 
@import "login-bar"; 

body { 
    color: white; 
} 

每个导入STYL文件也是 '应用程序/风格/' 文件夹中。

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灰烬,CLI会认识到这一点,重新构建和更新相应的资产/ project_name.css文件。但是,如果对导入的app.styl子进行更改(例如“site-footer”),则Ember-cli将按预期不一致地重新构建和更新.css。它通常用于第一次尝试,然后忽略其后的所有更改内(在任何孩子STYL)。

唯一的解决办法是终止并重新运行“烬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

的问题是用手写笔缓存,通过使改变到固定..

node_modules /椰菜触笔单/ index.js(线35);

var stylusOptions = { 
    filename: includePathSearcher.findFileSync(self.inputFile, includePaths), 
    paths: includePaths, 
    cache: false, 
} 

或者可以通过brocfile中的options参数手动修复。