使用Yeoman工作流程在何处添加css文件

Kar*_*ran 9 gruntjs yeoman

我使用Yeoman进行角度设置.在我的main.html(加载到index.html上的视图)下,我在styles文件夹中添加了一个引用的css文件.

我用构建注释包围它,以便它可以被grunt拾取,同时最小化:

<!-- build:css({.tmp,app}) styles/calendar.css -->
<link rel="stylesheet" href="styles/fullcalendar.css" />
<!-- endbuild -->   
Run Code Online (Sandbox Code Playgroud)

但是,当我使用grunt(使用基本的yeoman grunt配置)构建时,它似乎不会创建calendar.css文件.我怀疑这可能是因为main.html文件位于views/main.html中.

从我的grunt文件:

usemin: {
  html: ['<%= yeoman.dist %>/{,*/}*.html'],
  css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
  options: {
    dirs: ['<%= yeoman.dist %>']
  }
},
Run Code Online (Sandbox Code Playgroud)

...

cssmin: {
  // By default, your `index.html` <!-- Usemin Block --> will take care of
  // minification. This option is pre-configured if you do not wish to use
  // Usemin blocks.
  // dist: {
  //   files: {
  //     '<%= yeoman.dist %>/styles/main.css': [
  //       '.tmp/styles/{,*/}*.css',
  //       '<%= yeoman.app %>/styles/{,*/}*.css'
  //     ]
  //   }
  // }
},
Run Code Online (Sandbox Code Playgroud)

它不会在views目录中查找.我怀疑我错误地使用了工作流程.

如何包含特定于视图的css文件?另外,cssmin块中的注释是什么意思?谢谢!

Ste*_*hen 5

我有答案了!

Gruntfile.js由于您使用的是自定义工作流程,因此需要更多配置.(如果你已经完成了这些,请忽略).

首先,需要更新复制任务以将app/views目录复制到dist/views.这是一个很容易解决的问题:

copy: {
    dist: {
        files: [{
            expand: true,
            dot: true,
            cwd: '<%= yeoman.app %>',
            dest: '<%= yeoman.dist %>',
            src: [
                '*.{ico,png,txt}',
                '.htaccess',
                'images/{,*/}*.{webp,gif}',
                'styles/fonts/*',
                'views/*'
            ]
        }]
    },
    // ...
}
Run Code Online (Sandbox Code Playgroud)

很酷.现在,useminPrepare在你的东西被复制之前运行,也需要知道views目录.

useminPrepare: {
    options: {
        dest: '<%= yeoman.dist %>'
    },
    html: [
        '<%= yeoman.app %>/index.html',
        '<%= yeoman.app %>/views/*.html'
    ]
},
Run Code Online (Sandbox Code Playgroud)

Woot woot!而已!

如果你被困在任何地方,请告诉我!