javascript - 使用 Grunt 任务运行器时未找到任务错误
问题描述
我在 Windows 机器上,我相信我已经安装了运行 grunt 任务所需的一切:
grunt sass
我已经在终端中执行了以下命令:
npm install grunt-sass --save-dev
npm install time-grunt --save-dev
npm install jit-grunt --save-dev
npm install grunt-contrib-watch --save-dev
npm install grunt-browser-sync --save-dev
我收到以下错误:
Warning: Task "sass" not found. Use --force to continue.
Aborted due to warnings.
我已经尝试了其他类似帖子的所有可能解决方案,但无济于事。我Gruntfile.js
的如下:
"use strict";
module.exports = function (grunt) {
require("time-grunt")(grunt);
require("jit-grunt");
grunt.initConfig({
sass: {
dist: {
files: {
"css/styles.css": "css/styles.scss"
}
}
},
watch: {
files: "css/*.scss",
tasks: ["sass"]
},
browserSync: {
dev: {
bsFiles: {
src: [
"css/*.css",
"*.html",
"js/*.js"
]
},
options: {
watchTask: true,
server: {
baseDir: "./"
}
}
}
}
});
grunt.registerTask("css", ["sass"]);
grunt.registerTask("default", ["browserSync", "watch"]);
};
解决方案
我设法找到了解决方案。对文件进行以下更改:
"use strict";
module.exports = function (grunt) {
const sass = require('node-sass'); // add this line
require("time-grunt")(grunt);
require("jit-grunt")(grunt);
grunt.initConfig({
sass: {
dist: {
files: {
"css/styles.css": "css/styles.scss"
}
}
},
watch: {
files: "css/*.scss",
tasks: ["sass"]
},
browserSync: {
dev: {
bsFiles: {
src: [
"css/*.css",
"*.html",
"js/*.js"
]
},
options: {
implementation: sass, //add this line
sourceMap: true, //add this line
watchTask: true,
server: {
baseDir: "./"
}
}
}
}
});
grunt.registerTask("css", ["sass"]);
grunt.registerTask("default", ["browserSync", "watch"]);
};
推荐阅读
- assembly - AVR 字节存储
- multithreading - 多核架构 VS 多线程
- javascript - Javascript 引用索引之类的枚举、重构
- node.js - InputException 发生在 GetStream.io 中,当尝试为 NodeJS 的活动表单添加反应时
- unity3d - 在游戏视图中,相机速度是完美的,但在手机中测试时相机速度要慢得多
- java - Spring Cloud Stream 自定义 binder 未注册。如果使用 @Configuration 则禁用 kafka binder
- google-docs - Google Docs API - 更新链接表
- c - C 中的 gets() 函数是否会在输入字符串的末尾自动添加一个 NULL 字符?
- mysql - 无法从多列mysql中选择信息
- docker - 集成外部服务:从运行在 Minishift 上的 Pod 连接到 Docker MariaDB