- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这似乎是一个基本问题,但我不知道该怎么做。 This is how to do it in gulp .
我希望当我保存带有 jshint 错误的文件时,Grunt 构建失败。输出表明 jshint 失败,但 Grunt 仍然成功完成。
grunt.initConfig({
watch: {
js: {
files: ['/scripts/{,**}/*.js'],
tasks: ['newer:jshint:all']
}
}
})
我知道有grunt.fail
但我在这里该如何使用它呢?
最佳答案
以下要点将通过 CLI 报告 jshint
错误,并且在保存 .js
文件时无法执行任何后续构建步骤。
您需要根据您的要求进行调整:
project
│
├──package.json
│
├───scripts
│ │
│ └───test.js
│
├─── Gruntfile.js
│
└───node_modules
│
└─── ...
{
"name": "stack40031078",
"version": "0.0.1",
"description": "Answer to stack question 40031078",
"author": "RobC",
"license": "Apache-2.0",
"devDependencies": {
"grunt": "^1.0.1",
"grunt-contrib-jshint": "^1.0.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-newer": "^1.2.0"
}
}
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// VALIDATE JS
jshint: {
// Note we're using 'src:' instead of 'all:' below.
files: {
src: './scripts/{,**}/*.js'
},
options: {
// Use your jshint config here or define them in
// a separate .jshintrc file and set the flag to:
//
// jshintrc: true
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
browser: true,
smarttabs: true,
globals: {}
}
},
// WATCH THE JS FILES
watch: {
js: {
files: ['./scripts/{,**}/*.js'],
// NOTE: we're not using 'newer:jshint:all' below, just 'newer:jshint'
tasks: ['newer:jshint' /* <-- Add subsequent build tasks here. E.g. ,'concat' - A registered task can also be added. E.g. 'default' */]
}
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-newer');
grunt.registerTask('default', [
]);
};
console.log('Hello World');
var test = function() {
return 'test';
};
cd
到 project
目录$ npm install
$ grunt watch
test.js
并进行简单编辑(例如,在文件末尾添加新行),然后保存更改。CLI 报告错误如下:
Running "jshint:files" (jshint) task
./scripts/test.js
1 |console.log('Hello Universe');
^ 'console' is not defined.
>> 1 error in 1 file
Warning: Task "jshint:files" failed. Use --force to continue.
Aborted due to warnings.
Completed in 0.965s at Fri Oct 14 2016 10:22:59 GMT+0100 (BST) - Waiting...
注意:
在 watch.js
对象的 tasks
数组中指定的任何后续构建任务(例如 concat
按照 >Gruntfile.js
),将不会使用此要点调用,因为 jshint
任务失败(...并且 concat
任务当然尚未定义!)。
但是,当 JavaScript 文件成功通过 jshint
任务时,watch.js 的
对象将被调用。tasks
数组中定义的任何后续构建任务
希望这会有所帮助!
关于javascript - 如果 JSHint 在监视任务期间失败,如何使 Grunt 构建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40031078/
我正在使用 jshint,它给了我错误“不必要的分号”。 我不控制有问题的文件,我想忽略这个错误。 我在 jshint doc page 上找不到任何此类选项 最佳答案 事实证明,您可以通过为特定错误
我看到在每个目录的基础上指定 JSHint 选项的能力是 added here . 但是,我不清楚您实际上是如何利用这一点的。如何在单个目录中设置 JSH 选项,以便选项与其他目录不同? 最佳答案 似
假设我在一个文件上运行 JSHint。它报告了 83% 的错误。我想要 100% 的错误,但默认情况下它会显示“错误太多”。运行 jshint filename.js ,我将如何解除此限制并显示所有错
我的应用程序中有一个(单个)案例使用了 eval,并且我想仅针对这种情况抑制 JSHint 警告。 有办法实现吗?配置、魔法注释……? 最佳答案 是的,有办法。事实上是两个。在 October 201
尝试运行 jshint 时,我总是得到以下输出: C:\Users\foo\Source\ λ jshint -c .glados-jshintrc gulpfile.js ERROR: Can't
我有一个在我的代码库中使用的模式,它会在 jshint 上抛出一个无聊的警告。 我使用 --verbose 得到了警告的原因。它是W002。 我可以通过添加 /*jshint -W002*/来禁用每个
我正在使用 http://jshint.com/并且还想使用 http://flowtype.org/ .一旦我添加了静态类型,jshint 就会翻转,因为它不理解 : Object function
我正在使用 webpack.DefinePlugin注入(inject)全局常量作为我的构建管道的一部分。然而 jshint 提示常量“未定义”。 从我的 webpack.config.js 中:
我不是 ASI 的粉丝。但考虑到这是完全合法的 JavaScript,jshint(重复 8 次)到底在哪里期望找到分号? script.addEventListener('load', fu
我有这样的情况,我正在通过 gulp 从 vendor 脚本或我的脚本中构建缩小脚本,例如: var paths = { public : './public/javascripts
在对用于前端开发的 IDE 进行了一些综合评估后,我认为 WebStorm 领先。 缺少的一点是我们无法按照我们需要的方式配置 JSHint。 WebStorm 首选项 GUI 提供了一些选项,但不是
这完全是随机发生的。我所做的只是重新启动 Sublime,接下来我知道我必须重新设置 git.exe 的路径,而 SublimeLinter jshint 已损坏。我以各种顺序删除并重新安装了 Sub
我正在尝试 jshint 一些 javascript 文件,但由于某种原因,jshint 的本地 npm 安装无法正常工作。 包在那里: $ npm list --depth=0 testapp@1.
我使用 VIM 作为我的文本编辑器,并使用 Yeoman 来帮助我完成 Web 应用程序开发工作流程。 我已经在使用 vim-jshint帮助我从 VIM 中检查我的 javascript 文件,我想
当我发现 optional chaining 时,我正在编写一些 Javascript。 (?.)。我决定在我正在编写的一些代码中需要它。当我完成输入代码时,我注意到 JSHint 给了我一个错误,指
在 sublime text 上,我在尝试验证 JS 时遇到以下错误。 [Errno 2] No such file or directory: 'jshint' [cmd: ['jshint', '
在这种情况下解决 JSHint 错误的正确方法是什么?删除 function(i) 可以解决这个问题吗?这样会影响性能吗? for (var i = 0; i + 1 避免警告的一种方法是使用 se
在注释中使用“不安全字符”(例如变音符)时,出现以下错误: This character may get silently deleted by one or more browsers. 有什么方法
使用Gulp时,如何从JSHint获得输出以显示在Visual Studio 2015的错误列表中,而不是仅输出到任务运行器? 我尝试了this package,但是除了格式化Gulp输出的格式略有不
我正在尝试创建一个服务器端 git pre-receive Hook 来检查 php 和 javascript 文件的代码质量。因此,如果预接收钩子(Hook)测试失败,repo 服务器将使 git
我是一名优秀的程序员,十分优秀!