【发布时间】:2018-07-09 20:46:17
【问题描述】:
我有一个 Drupal 子主题,其结构如下:
├── scss
│ ├── _helpers.scss
│ ├── component
│ │ ├── _dashboard.scss
│ │ ├── _alert.scss
│ │ ├── _badge.scss
│ │ ├── _branding.scss
│ │ ├── _navbar.scss
│ │ └── _user-login-form.scss
│ ├── element
│ │ ├── _header.scss
│ │ └── _main.scss
│ ├── styles.scss
这是我的 GruntFile.js:
module.exports = function(grunt) {
"use strict";
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
css: {
files: '**/*.scss',
tasks: ['sass']
},
scripts: {
files: ['js/src/*.js'],
tasks: ['jshint', 'concat', 'uglify'],
options: {
nospawn: true,
livereload: 45729
}
},
options: {
livereload: true,
},
},
sass: {
dist: {
files: {
'css/styles.css': 'scss/styles.scss'
}
}
},
jshint: {
myFiles: ['js/src/*.js']
},
concat: {
options: {
separator: ';',
},
dist: {
src: ['../../../libraries/popper.js/dist/umd/popper.js', '../../../libraries/bootstrap/dist/js/bootstrap.js', 'js/src/*.js'],
dest: 'js/scripts.js',
},
},
uglify: {
my_target: {
files: {
'js/scripts.min.js': ['js/scripts.js']
}
}
},
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.registerTask('default', ['watch']);
};
当我对 scss 文件进行更改时,它们会编译成 styles.css。除此之外,我还希望能够为每个组件编译一个 css。
例如:
├── scss
│ ├── _helpers.scss
....
....
└── components
├── component1
│ ├── component1.css
│ └── component1.scss
└── component2
├── component2.css
└── component2.scss
这样如果component2只用在一页上,我只会把它加到那一页上。
如何在我的 GruntFile 中进行设置?
【问题讨论】: