2014-09-29 54 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參數手動修復。