Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 找不到本地grunt文件_Node.js_Gruntjs - Fatal编程技术网

Node.js 找不到本地grunt文件

Node.js 找不到本地grunt文件,node.js,gruntjs,Node.js,Gruntjs,我有一个使用azure devops构建的nodejs应用程序。 当我运行该项目时,我发现了以下错误 [调试]-环境=测试 [命令]C:\Users\ci cd admin\AppData\Roaming\npm\grunt.cmd test\u build-gruntfile C:\Users\ci cd admin\agent\\u work\6\s\gruntfile.js-environment=test grunt cli:grunt命令行界面v1.3.2 致命错误:找不到本地grun

我有一个使用azure devops构建的nodejs应用程序。 当我运行该项目时,我发现了以下错误

[调试]-环境=测试 [命令]C:\Users\ci cd admin\AppData\Roaming\npm\grunt.cmd test\u build-gruntfile C:\Users\ci cd admin\agent\\u work\6\s\gruntfile.js-environment=test grunt cli:grunt命令行界面v1.3.2 致命错误:找不到本地grunt。 如果您看到此消息,则grunt尚未在本地安装到 你的项目。有关安装和配置grunt的更多信息, 请参阅入门指南: https://gruntjs.com/getting-started [调试]rc:99 [调试]成功:false 如您所见,安装了grunt cli,我将在下面附加我的package.json文件

{
  "name": "vvvvvv",
  "version": "vv.vv.2",
  "description": "vvvv vvvvv vvvv",
  "homepage": "https://vvvv.vvvv.co",
  "repository": {
    "type": "git",
    "url": "https://vvvv.vvvvv.com/_git/RMS"
  },
  "license": "SEE LICENSE IN LICENCE.md",
  "scripts": {
    "client": "cd client && yarn start",
    "server": "nodemon ./server/server.js",
    "dev": "concurrently --kill-others-on-fail \"yarn docs:build\" \"yarn server\" \"yarn client\"",
    "debug": "concurrently --kill-others-on-fail \"nodemon --inspect=127.0.0.1:9229 server/server.js\" \"yarn client\"",
    "start": "sequelize db:migrate && sequelize db:seed:all && pm2 start server/server.js",
    "stop": "pm2 stop server/server.js",
    "docs:build": "documentation build server/** -f html -o client/public/server-doc && documentation build client/src/** -f html -o client/public/client-doc",
    "test": "mocha test --reporter mocha-junit-reporter --reporter-options mochaFile=./test-results.xml --exit",
    "report": "junit-viewer --results=test-results.xml --save=client/public/test-result.html",
    "migrate-dev": "sequelize db:migrate && sequelize db:seed:all --seeders-path server/seeders/common && sequelize db:seed:all --seeders-path server/seeders/test",
    "migrate-prod": "sequelize db:migrate && sequelize db:seed:all --seeders-path server/seeders/common && sequelize db:seed:all --seeders-path server/seeders/production",
    "sonar": "node sonar-project.js"
  },
  "dependencies": {
    "assert-plus": "*",
    "body-parser": "1.18.3",
    "bunyan": "1.8.12",
    "client-credentials": "1.1.0",
    "concurrently": "4.1.0",
    "connect-mongo": "1.3.2",
    "cookie-parser": "1.4.3",
    "cors": "2.8.5",
    "ejs": ">= 0.0.0",
    "ejs-locals": ">= 0.0.0",
    "express": "4.16.4",
    "express-fileupload": "1.1.5",
    "express-handlebars": "3.0.2",
    "express-session": "1.14.1",
    "firebase-admin": "8.2.0",
    "graph-service": "2.1.3",
    "handlebars": "4.1.2",
    "helmet-csp": "^2.9.3",
    "json-rules-engine": "2.3.3",
    "jsonwebtoken": "8.5.1",
    "lodash": "4.17.11",
    "method-override": "2.3.6",
    "moment": "2.24.0",
    "mongoose": "4.6.2",
    "morgan": "1.9.1",
    "nodejs-nodemailer-outlook": "1.1.0",
    "nodemailer": "6.1.0",
    "passport": "0.4.0",
    "passport-azure-ad": "4.1.0",
    "passport-jwt": "4.0.0",
    "pg": "7.8.1",
    "pg-hstore": "2.3.2",
    "sequelize": "4.43.0",
    "swagger-jsdoc": "1.10.3",
    "x-xss-protection": "^1.3.0"
  },
  "devDependencies": {
    "@babel/core": "7.4.4",
    "@babel/node": "7.2.2",
    "@babel/preset-env": "7.4.4",
    "babel-cli": "6.26.0",
    "babel-core": "6.26.3",
    "babel-eslint": "9.0.0",
    "babel-polyfill": "6.26.0",
    "babel-preset-es2015": "6.24.1",
    "babel-preset-stage-2": "6.24.1",
    "babel-register": "6.26.0",
    "chai": "4.2.0",
    "eslint": "5.6.0",
    "eslint-config-airbnb": "17.1.0",
    "eslint-config-prettier": "4.1.0",
    "eslint-config-react-app": "3.0.7",
    "eslint-plugin-flowtype": "2.50.3",
    "eslint-plugin-import": "2.16.0",
    "eslint-plugin-jsx-a11y": "6.2.1",
    "eslint-plugin-prettier": "3.0.1",
    "eslint-plugin-react": "7.12.4",
    "grunt": "1.0.3",
    "grunt-clean": "0.4.0",
    "grunt-contrib-copy": "1.0.0",
    "grunt-contrib-jshint": "2.0.0",
    "grunt-env": "0.4.4",
    "grunt-shell": "3.0.1",
    "grunt-zip": "0.18.1",
    "load-grunt-tasks": "4.0.0",
    "mocha": "6.1.4",
    "mocha-junit-reporter": "1.23.1",
    "prettier": "1.16.4",
    "sequelize-cli": "5.4.0",
    "sinon": "7.4.1",
    "sonarqube-scanner": "2.5.0",
    "supertest": "4.0.2"
  }
}
下面是我的Grunfile.js

/* eslint-disable global-require */
/* eslint-disable func-names */
module.exports = function(grunt) {
  require('load-grunt-tasks')(grunt);
  grunt.initConfig({
    env: {
      options: {},
      dev: {
        REACT_APP_ENV: grunt.option('environment') || 'production'
      }
    },
    shell: {
      build_server: {
        command: 'npm install'
      },
      build_client: {
        command: 'cd client && npm install && npm run build'
      }
    },
    clean: {
      folder: 'dist'
    },
    copy: {
      build: {
        files: [
          { src: 'server/**', dest: 'dist/' },
          { src: 'package.json', dest: 'dist/' },
          { src: '.sequelizerc', dest: 'dist/' },
          { src: 'client/build/**', dest: 'dist/' },
          { src: 'test/**', dest: 'dist/' },
        ]
      }
    }
  });
  grunt.loadNpmTasks('grunt-clean');
  grunt.loadNpmTasks('grunt-env');
  grunt.registerTask('prod_build', [
    'env',
    'shell:build_server',
    'shell:build_client',
    'clean',
    'copy:build'
  ]);
  grunt.registerTask('test_build', [
    'env',
    'shell:build_server',
    'shell:build_client',
    'clean',
    'copy:build'
  ]);
  grunt.registerTask('uat_build', [
    'env',
    'shell:build_server',
    'shell:build_client',
    'clean',
    'copy:build'
  ]);
  grunt.registerTask('regression_build', [
    'env',
    'shell:build_server',
    'shell:build_client',
    'clean',
    'copy:build'
  ]);
  grunt.registerTask('default', ['shell:build_server', 'shell:build_client']);
};

有什么想法吗

看起来可能是Grunt尚未在本地安装,或者您可能在项目文件夹之外。您可以尝试从项目文件夹中执行以下命令,将其安装到依赖项中

“npm安装bower-保存开发”