複数の.scssファイルを1つのCSSファイルにコンパイルしようとしています。これは実際には機能しますが、最初のファイルを取得するだけです...
sass: { // Task
dist: {
files: {
'css/test.css':'sass/*.scss'
}
}
}
Rubyがインストールされていないため、grunt-contrib-sassはオプションではありません。このようにスタイラスで同じことを行います...
stylus: {
compile : {
files : {
'css/g.css' : 'stylus/*.styl'
}
}
}
grunt-contrib-concat
最初?
concat: {
dist: {
src: [
'sass/*.scss',
],
dest: 'sass/build.scss',
}
},
sass: { // Task
dist: {
files: {
'css/test.css':'sass/build.scss'
}
}
}
次にタスク:
grunt.registerTask('sass', ['concat', 'sass']);
編集
@import
?私は詳細の専門家ではありませんが、ここで私がしていることは...
dir /
main.scss
_nav.scss
_vars.scss
etc.
main.scss
@import "nav";
@import "vars";
etc.
私は同じ問題を抱えていたので、これに触れたいだけで、これは実際に機能します:
sass: { // Task
dist: {
files: [{
// Set to true for recursive search
expand: true,
cwd: 'scss/',
src: ['**/*.scss'],
dest: 'css/',
ext: '.css'
}]
}
}
それがどうなるか教えてください!
「grunt-sass-globbing」を使用できます。 Gruntfileで指定したすべてのインポートを含むSCSSファイルが生成されます。 https://www.npmjs.com/package/grunt-sass-globbing/
このオプションを使用すると、ソースマップを保持でき、SCSSファイルを連結する必要はありません。
sass_globbing: {
your_target: {
options: {
useSingleQuotes: false,
signature: '// Hello, World!'
},
files: {
'imports.scss': 'partials/**/*.scss',
}
}
}
sass: {
options: {
sourceMap: true
},
develop: {
files: {
'main.css': 'imports.scss'
}
}
}
Concatを使用したくない場合は、ディレクトリ内のすべてのファイルを指定できます。この例をチェックしてください: https://github.com/gruntjs/grunt-contrib-sass#compile-files-in-a-directory
とても簡単です。
2つのscssファイルでこの構造を持っているとしましょう:
scss/
core/file.scss
templates/file2.scss
main.scss
あなたがする必要があるのは、ルートscssフォルダーにmain.scssというファイルを作成し、すべてのscssファイルをインポートすることです。
例:main.scssは以下を持ちます:
@import "core/file.scss"
@import "templates/file2.scss"
grunt-contrib-sassを使用して、main.scssファイルを呼び出すだけです:
完了:)
//Sass ===============================
var sass;
config.sass = sass = {};
//production
sass.dist = {
options: { style: "compressed"}
, files: {
"public/stylesheets/myapp.production.css" : "sass/main.scss"
}
};
//development env.
sass.dev = {
options: { style: "expanded", lineNumber: true}
, files: {
"public/stylesheets/myapp.development.css" : "sass/main.scss"
}
};