gradle - 使用grunt和gradle配置jshint

标签 gradle jasmine gruntjs jshint

我试图使用grunt并与gradle结合配置jshint,而我尝试在下面运行我的任务时却遇到了错误

Loading "jshint.js" tasks...ERROR
>> Error: Cannot find module 'jshint'
>>     at Function.Module._resolveFilename (module.js:338:15)
>>     at Function.Module._load (module.js:280:25)
>>     at Module.require (module.js:364:17)
>>     at require (module.js:380:17)


No tasks specified, running default tasks.
Running tasks: default

我正面临错误->
正在加载“jshint.js”任务...错误

以下是我遵循的步骤

package.json
{
  "name": "sample",
  "version": "0.0.0",
  "description": "sample project",
  "main": "scripts/main.js",
  "scripts": {
    "test": "scripts/spec"
  },
  "repository": "",
  "author": "",
  "license": "BSD",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-jshint": "~0.6.0"
  }
}

Gruntfile.js
module.exports = function(grunt) {
  grunt.initConfig({
      jshint: {
          files: ['gruntfile.js', 'vM/**/*.js'],
          options: {
            globals: {
              jQuery: true,
              console: true,
              module: true
            }
          }
        }
  });

  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.registerTask('test', 'jshint');
};

grunt.gradle
import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.api.tasks.Exec

def windows_source_dir = "C:\node_modules"

task jshint(type: GruntTask) {
    dependsOn = ['gruntLink']
    gruntArgs = "jshint"
    workingDir 'src/main/webapp/'
}

task gruntLink(type: Exec) {
   description = "Installs all Node.js dependencies defined in package.json"
   if (Os.isFamily(Os.FAMILY_WINDOWS)) {
    commandLine 'cmd', 'mklink /D windows_source_dir src/main/webapp/node_modules'
   } else {
     commandLine = ["ln", "-nfs", "/usr/local/lib/node_modules/grunt_modules", "src/main/webapp/node_modules"]
   }

}

class GruntTask extends Exec {
    private String gruntExecutable = Os.isFamily(Os.FAMILY_WINDOWS) ? "grunt.cmd" : "grunt"

    String gruntArgs = ""

    public GruntTask() {
        super()
        this.setExecutable(gruntExecutable)
    }

    public void setGruntArgs(String gruntArgs) {
        this.args = "$gruntArgs".trim().split(" ") as List
    }
}

最佳答案

您是否在项目目录的根目录中运行npm install?您需要本地安装JSHint才能运行Grunt任务。 :-)

关于gradle - 使用grunt和gradle配置jshint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19232478/

相关文章:

java - gradle 包含传递运行时依赖作为编译依赖

gradle - 如果gradle/ivy已经在我的Maven本地仓库中显示了依赖项,为什么不下载依赖项呢?

angularjs - Protractor 0.16.1 e2e AngularJS-启动 Selenium 独立服务器…events.js :72 Error: spawn ENOENT

npm - Bootstrap 4 发布 - 创建自定义 css

java - Gradle&Junit5 基于标签的 Gradle 任务在使用 & 表达式时不起作用

android - Gradle:Manifest 合并更改了 AndroidManifest 文件中 "theme"参数的值:

angularjs - 如何使用 Jasmine 模拟链式 promise ?

angular - 正确指定 tslint 包的路径

javascript - 如何对 ui-router 状态进行 onEnter 单元测试和解析

windows - grunt-contrib-build' 不在 npm 注册表中