【问题标题】:Replace broccoli-sass with broccoli-compass in broccoli-sample-app在 broccoli-sample-app 中用 broccoli-compass 替换 broccoli-sass
【发布时间】:2014-06-23 12:28:53
【问题描述】:

我正在尝试在Broccoli Ember Sample 中将broccoli-sass 替换为broccoli-compass

我的应用结构如下:

app
public
styles
  app.scss

Brocfile:

...
var compileSass = require('broccoli-compass')
...
var appNamespace = 'my-app-name';

function preprocess (tree) {
  tree = filterTemplates(tree, {
    extensions: ['hbs', 'handlebars'],
    compileFunction: 'Ember.Handlebars.compile'
  })

  return tree
}

var app = 'app'
app = pickFiles(app, {
  srcDir: '/',
  destDir: appNamespace // move under app namespace
})
app = preprocess(app)

var styles = 'styles'
styles = pickFiles(styles, {
  srcDir: '/',
  destDir: appNamespace
})
styles = preprocess(styles)

var tests = 'tests'
tests = pickFiles(tests, {
  srcDir: '/',
  destDir: appNamespace + '/tests'
})
tests = preprocess(tests)

var vendor = 'vendor'

var sourceTrees = [app, styles, vendor]
if (env !== 'production') {
  sourceTrees.push(tests)
}
sourceTrees = sourceTrees.concat(findBowerTrees())

var appAndDependencies = new mergeTrees(sourceTrees, { overwrite: true })

var appJs = compileES6(appAndDependencies, {
  loaderFile: 'loader.js',
  ignoredModules: [
    'ember/resolver'
  ],
  inputFiles: [
    appNamespace + '/**/*.js'
  ],
  legacyFilesToAppend: [
    'jquery.js',
    'handlebars.js',
    'ember.js',
    'ember-resolver.js'
  ],
  wrapInEval: false,
  outputFile: '/assets/app.js'
})

var appCss = compileSass(appAndDependencies, 'styles/app.scss')

var publicFiles = 'public'

module.exports = mergeTrees([appJs, appCss, publicFiles])

但是,我在调用broccoli serve 时遇到以下错误:

[broccoli-compass] 错误:没有这样的文件或目录 - /Users/my.name/Documents/Code/broccoli-ember/tmp/tree_merger-tmp_dest_dir-4rW9S0CD.tmp/styles/app.scss

知道我在这里缺少什么吗?

【问题讨论】:

    标签: ember.js compass-sass broccolijs


    【解决方案1】:

    我将 brocfile 样式预处理更改为:

    var styles = 'styles'
    styles = pickFiles(styles, {
      srcDir: '/',
      destDir: appNamespace + '/styles'
    })
    styles = preprocess(styles)
    

    和 compileSass 调用:

    var appCss = compileSass(appAndDependencies, appNamespace + '/styles/app.scss', {
        outputStyle: 'expanded',
        sassDir: appNamespace + '/styles',
        imagesDir: 'public/images/',
        cssDir: '/assets'
    })
    

    与此处的答案类似 - Compiling Compass in an Ember-CLI project

    【讨论】:

    • 我遇到了同样的问题,但无法理解您的 brocfile - 介意看看 here?你是一直有 appCss 变量,还是使用 app.styles?谢谢!
    • hmm 我这里没有使用 ember-cli,brocfile 语法可能有点不同。我的完整 brocfile(它还有更多功能)在这里 github.com/RYFN/broccoli-ember 如果你想看看
    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多