2

最近、ember-cli を .39 にアップグレードしましたが、ブロッコリー コンパス コードが壊れる原因となる変更がありました。

コードは次のとおりです。

app.styles = function() {
  return compileCompass(this.appAndDependencies(), this.name + '/styles/app.scss', {
    compassCommand: 'bundle exec compass',
    outputStyle: 'expanded',
    sassDir: this.name + '/styles',
    imagesDir: 'public/images',
    cssDir: '/assets'
  });
};

次のエラーが表示されます。

[broccoli-compass] Error:  Command failed: Errno::ENOENT on line ["155"] of ~/.rvm/gems/ruby-2.1.1/gems/compass-0.12.6/lib/compass/compiler.rb: No such file or directory @ rb_sysopen - ~/campaign-designer/ember/tmp/tree_merger-tmp_dest_dir-pSk32Zuy.tmp/campaign-designer/styles/app.scss
Run with --trace to see the full backtrace

arguments: `bundle exec compass compile campaign-designer/styles/app.scss --relative-assets --sass-dir campaign-designer/styles --output-style expanded --images-dir public/images --css-dir "../compass_compiler-tmp_cache_dir-8Yu97OaF.tmp/assets"`

app.stylesまたはthis.appAndDependencies()変更されましたか?この構成の多くのバリエーションを試してみましたが、役に立ちませんでした。

ここにも同様の質問がありますが、まだうまくいきませんでした。

4

1 に答える 1

2

それだけの価値があるので、このようなものが私を助けてくれました:

// Compass config in Brocfile.js
app.registry.add('css', 'broccoli-compass', 'scss', {
  toTree: function(tree, inputPath, outputPath, options) {
    // broccoli-compass doesn't like leading slashes
    if (inputPath[0] === '/') { inputPath = inputPath.slice(1); }

    // tree = mergeTrees([
    //   tree,
    //   'public'
    // ], {
    //   description: 'TreeMerger (stylesAndVendorAndPublic)'
    // });

    return compileCompass(tree, inputPath + '/app.scss', {
      outputStyle: 'expanded',
      // require: 'sass-css-importer', // Allows us to import CSS files with @import("CSS:path")
      sassDir: inputPath,
      imagesDir: 'images',
      //fontsDir: 'fonts',
      cssDir: outputPath
    });
  }
});

最終的に、プロジェクトからコンパスを削除しました (自分でいくつかの SASS mixin を作成する必要がありました)。構成 + より高速なビルド速度を得るための試みに関する問題を回避しました。


更新: ember-cli-compass-compiler ember-cli アドオンをチェックアウトすると、ember-cli プロジェクトで Compass を簡単に使い始めることができます。

于 2014-07-30T03:28:10.353 に答える