/ / Dlaczego plik Grunt przerywa komunikatem Argumenty do path.join musi być napisami Użyj --force, aby kontynuować - sass, gruntjs, grunt-contrib-watch

Dlaczego plik Grunt przerywa z komunikatem Argumenty do path.join musi być napisami Użyj --force, aby kontynuować - sass, gruntjs, grunt-contrib-watch

Mam następujący plik pomruku, który tworzę dla małego projektu, który mam pod ręką. Przerywa jednak z następującym komunikatem

Running "sass:dev" (sass) task
Warning: Arguments to path.join must be strings Use --force to continue.

Gdzie robię źle? Czy ktoś może mi to wyjaśnić?

/*!
* XXX
* @author XXXXXX
*/

"use strict";

/**
* Grunt Module
*/

module.exports = function(grunt) {
// Grunt goodness goes here
/**
* Configuration
*/
grunt.initConfig({
/**
* Get package meta data
*/
pkg: grunt.file.readJSON("package.json"),

/**
* Set project object
*/
project: {
app: "app",
assets: "<%= project.app %>/assets",
src: "<%= project.assets %>/src",
css: [
"<%= project.src %>/styles/*.scss"
],
js: [
"<%= project.src %>/scripts/*.js"
],
dist: "<%= project.assets %>/dist",
distcss: [
"<%= project.dist %>/styles/*.scss"
],
distjs: [
"<%= project.dist %>/scripts/*.js"
],
},

/**
* Project banner
*/
tag: {
banner: "/*!n" +
" * <%= pkg.name %>n" +
" * <%= pkg.title %>n" +
" * <%= pkg.url %>n" +
" * @author <%= pkg.author %>n" +
" * @version <%= pkg.version %>n" +
" * Copyright <%= pkg.copyright %>. <%= pkg.license %> licensed.n" +
" */n"
},

/**
* Sass
*/
sass: {
dev: {
options: {
style: "expanded",
banner: "<%= tag.banner %>",
compass: true
},
files: {
"<%= project.css %>": "<%= project.distcss %>"
}
},
dist: {
options: {
style: "compressed",
compass: true
},
files: {
"<%= project.css %>": "<%= project.distcss %>"
}
}
},
/**
* Watch
*/
watch: {
sass: {
files: "<%= project.src %>/styles/{,*/}*.{scss,sass}",
tasks: "sass:dev"
}
},
// Uglify
uglify: {
options: {
banner: "/*! <%= pkg.name %>  Version: <%= pkg.version %> Created on: <%= grunt.template.today("yyyy-mm-dd") %> */n"
},
build: {
src: "src/scripts/*.js",
dest: "build/<%= pkg.name %>.min.js"
}
}
});
/**
* Load Grunt plugins
*/
require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
/**
* Default task
* Run `grunt` on the command line
*/
grunt.registerTask("default", [
"sass:dev",
"watch"
]);

};

Odpowiedzi:

1 dla odpowiedzi № 1

Podczas określania files dla zadania sass przy użyciu something.css : something.scss składnia, nie można używać gwiazdek do dołączania wielu plików. Musisz określić każdy plik osobno, jak na przykład:

files: {
"one.css": "one.scss",
"two.css": "two.scss",
"three.css": "three.scss",
}

Lub, jeszcze lepiej, użyj expand Właściwość, aby zrobić to dla wszystkich plików w katalogu, jak na przykład:

files: [{
expand: true,
cwd: "<%= project.src %>/styles",
src: ["*.scss"],
dest: "<%= project.src %>/styles",
ext: ".css"
}]

Więcej na ten temat w grunt-contrib-sass readme.