使用angular-fullstack生成器时遇到Sass的问题

时间:2015-10-15 17:42:17

标签: sass gruntjs yeoman bootstrap-sass angular-fullstack

我使用Sass和Yeoman的角度全堆栈生成器建立了一个webapp。它似乎运行正常,直到我意识到每次grunt尝试运行任务时输出的错误。这是输出:

/Users/rorysmith/.rvm/rubies/ruby-2.2.1/bin/scss --no-cache --update app.scss:app.css
error app.scss (Line 4: File to import not found or unreadable: ../bower_components/bootstrap-sass-official/vendor/assets/fonts/bootstrap.)

Process finished with exit code 1

它指的是app.scss文件中的一行:

@import '../bower_components/bootstrap-sass-official/vendor/assets/fonts/bootstrap'

我在开始时将目录更改为包含../,因为这是bower_components生效的地方:

folders

当注释掉时,它与同一文件的不同行有一个问题: @import 'modal/modal.scss';

这是app.scss文件的全部内容,它只是生成器创建的库存:

$icon-font-path: "../bower_components/bootstrap-sass-official/vendor/assets/fonts/bootstrap";
$fa-font-path: "../bower_components/font-awesome/fonts";

@import '../bower_components/bootstrap-sass-official/vendor/assets/fonts/bootstrap';
@import '../bower_components/font-awesome/fonts';

/**
 * App-wide Styles
 */

.browsehappy {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}

// Component styles are injected through grunt
// injector
@import 'account/login/login.scss';
@import 'admin/admin.scss';
@import 'create/create.scss';
@import 'main/main.scss';
@import 'modal/modal.scss';
// endinjector

知道到底发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,这就是为我“解决”它的问题......

在Gruntfile中,找到以下内容:

  // Inject component scss into app.scss
  sass: {
    options: {
      transform: function(filePath) {
        filePath = filePath.replace('/client/app/', '');
        filePath = filePath.replace('/client/components/', '');
        return '@import \'' + filePath + '\';';
      },
      starttag: '// injector',
      endtag: '// endinjector'
    },
    files: {
      '<%= yeoman.client %>/app/app.scss': [
        '<%= yeoman.client %>/{app,components}/**/*.{scss,sass}',
        '!<%= yeoman.client %>/app/app.{scss,sass}'
      ]
    }
  },

修改以下行:

filePath = filePath.replace('/client/components/', '../components/');

现在它应该注入正确的路径。

警告:我真的不知道自己在做什么。