簡體   English   中英

節點/ NPM / Grunt在jscs上失敗(grunt-jscs)

[英]Node/NPM/Grunt failing on jscs (grunt-jscs)

我有一個在javascript代碼庫上運行JSCS的繁瑣任務,它一直在工作,直到與使用最新,穩定版本的grunt,npm / node的構建服務器集成。

這一切都在npm 1.XX.X下運行良好,但在我升級到2.XX.X后它就破了。 我嘗試了最新的3.XX.X,但失敗的方式與2.XX.X相同。

我假設所需的相關部分是

cli輸出:

$ node -v
v5.2.0

$ npm -v
3.3.12

$ grunt --version
grunt-cli v0.1.13
grunt v0.4.5

$ grunt jscs
Loading "jscs.js" tasks...ERROR
>> TypeError: fn.call is not a function
Warning: Task "jscs" not found. Use --force to continue.

Aborted due to warnings.

的package.json:

{
"name": "Javascript",
  "version": "1.0.0",
  "private": true,
  "devDependencies": {
    "grunt": "~0.4.5",
    "matchdep": "^0.3.0",
    "grunt-contrib-watch": "~0.6.1",
    "grunt-express": "~1.4.1",
    "grunt-open": "~0.2.3",
    "grunt-chmod": "~1.0.3",
    "grunt-contrib-jshint": "~0.11.3",
    "grunt-contrib-uglify": "~0.10.0",
    "karma": "~0.13.15",
    "grunt-karma": "~0.12.1",
    "jasmine-core": "~2.3.4",
    "karma-jasmine": "~0.3.6",
    "phantomjs": "~1.9.18",
    "karma-phantomjs-launcher": "~0.2.1",
    "angular-mocks": "~1.2.28",
    "jquery": "~2.1.4",
    "underscore": "~1.8.3",
    "grunt-contrib-clean": "~0.6.0",
    "karma-coverage": "~0.5.3",
    "grunt-jscs": "~2.3.0",
    "grunt-contrib-concat": "~0.5.1"
  }
}

Gruntfile.js配置:

module.exports = function (grunt) {
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

grunt.initConfig({
    .....
    jscs: {
        src: [
            'gruntfile.js',
            '<%= sourceFolder %>/**/*.js',
            '!<%= sourceFolder %>/angular/**',
            '!<%= sourceFolder %>/es5-shim/**',
            '!<%= sourceFolder %>/**/*[.-]min.js',
            '!<%= sourceFolder %>/respond/*.js',
            '!<%= sourceFolder %>/angular-ui-bootstrap/*.js',
            '!<%= sourceFolder %>/analytics/angulartics*.js'
        ],
        options: {
            config: '.jscsrc',
            fix: true
        }
    }
});

剛剛創建了一個測試項目,我就能夠重現這個問題。 它在這一行:

require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

請改用load-grunt-tasks

require('load-grunt-tasks')(grunt);

還運行npm i --save-dev load-grunt-tasks ,你很高興!

grunt-express項目擁有導致此失敗的依賴項。 grunt-express還沒有在2年多的時間里發布,因此我選擇轉移到grunt-contrib-connect並使用它,這解決了我的問題! 希望它可以幫助任何遇到這個問題的人。

每當我構建與node.js / npm升級相關的問題時,10/10次它都是一個錯誤的依賴。

嘗試將grunt-jscs依賴項碰撞到2.5: httpsgrunt-jscs

在服務器上: npm install jscs -g

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM