首页 > 解决方案 > 将 grunt 任务转换为 package.json 中的 npm 脚本

问题描述

我正在尝试将 grunt 任务转换为 package.json 中脚本部分下列出的 npm 脚本,但我似乎无法弄清楚如何在脚本部分中执行与 grunt 等效的操作。当前在我的 package.json 中列出的脚本不运行。

// Load Grunt plugins declared in your `test-dependencies`
  grunt.loadNpmTasks("grunt-concurrent");
  grunt.loadNpmTasks("grunt-contrib-clean");
  grunt.loadNpmTasks("grunt-eslint");
  grunt.loadNpmTasks("grunt-karma");
  grunt.loadNpmTasks("grunt-shell");
  grunt.loadNpmTasks("grunt-webpack");

  // Load our Grunt tasks
  grunt.loadTasks("configuration/grunt-tasks");

  // Lint the code
  grunt.registerTask("lint", [ "eslint" ]);

  // Run the front-end unit tests
  grunt.registerTask("test", [ "karma:unit" ]);

  // Run the front-end unit tests whenever a file changes
  grunt.registerTask("tdd", [ "karma:tdd" ]);

  grunt.registerTask("default", [ "lint", "dist-prod", "test"]);

  // Run the unit tests before builing prod assets
  grunt.registerTask("release", [ "lint", "test", "dist-prod" ]);

  // Build production assets (uglified/minified) into /dist directory
  grunt.registerTask("dist-prod", [ "clean", "webpack:build-prod" ]);

  // Build development assets into /dist directory
  grunt.registerTask("dist-dev", [ "clean", "webpack:build-dev" ]);

  // Start Webpack dev server and Express dev server with in-memory hot loading assets
  grunt.registerTask("server", [ "concurrent:hot-server" ]);

  // Build production assets and start Express dev server with static production assets
  grunt.registerTask("server-static", [ "dist-dev", "shell:static-server" ]);
};

我的 package.json :

{
    "name": "test_app",
    "version": "0.1.0",
    "module": "app/main.js",
    "scripts": {
        "build" : "grunt-concurrent",
        "test" : "grunt-karma",
        "tdd" : "karma:tdd"
    },
    "dependencies": {
        "bootstrap": "^4.6.0",
        "core-js": "^1.2.7",
        "grunt-karma": "^0.11.2",
        "moment": "^2.20.1",
        "react-addons-test-utils": "^0.14.8",
        "react-datetime": "^2.11.1",
        "react-dom": "^0.14.9",
        "react-paginate": "^5.1.0",
        "react-popper": "^0.7.4",
        "react-shallow-testutils": "^1.0.0",
        "reactstrap": "^5.0.0",
        "regenerator-runtime": "^0.10.5"
    },
    "devDependencies": {
        "@webassemblyjs/ast": "^1.9.1",
        "assets-webpack-plugin": "^0.3.1",
        "autoprefixer": "^7.1.6",
        "babel": "^5.8.38",
        "babel-eslint": "^6.1.2",
        "babel-loader": "^5.3.3",
        "blob-polyfill": "^1.0.20150320",
        "css-loader": "^0.12.1",
        "eslint": "^3.1.1",
        "eslint-plugin-react": "^3.6.3",
        "express": "^4.17.1",
        "express-handlebars": "^1.2.2",
        "extract-text-webpack-plugin": "^3.0.2",
        "file-loader": "^0.8.5",
        "grunt": "^0.4.5",
        "grunt-concurrent": "^1.0.1",
        "grunt-contrib-clean": "^0.6.0",
        "grunt-contrib-copy": "^0.7.0",
        "grunt-eslint": "^18.0.0",
        "grunt-shell": "^0.7.0",
        "grunt-webpack": "^1.0.18",
        "handlebars": "^4.7.6",
        "isparta": "^3.1.0",
        "isparta-loader": "^1.0.0",
        "istanbul-instrumenter-loader": "^0.1.3",
        "jasmine": "^2.3.2",
        "jasmine-ajax": "^3.1.1",
        "jquery": "^2.1.4",
        "json-loader": "^0.5.7",
        "karma": "^0.13.22",
        "karma-coverage": "^0.3.1",
        "karma-jasmine": "^0.3.8",
        "karma-mocha-reporter": "^1.2.3",
        "karma-phantomjs-launcher": "^0.2.3",
        "karma-sourcemap-loader": "^0.3.8",
        "karma-spec-reporter": "0.0.31",
        "karma-webpack": "^1.6.0",
        "node-libs-browser": "^0.5.3",
        "react": "^0.14.9",
        "react-router-dom": "^4.2.2",
        "rimraf": "^2.6.3",
        "schema-utils": "^0.4.7",
        "style-loader": "^0.12.4",
        "url-search-params": "^0.6.1",
        "webpack": "^4.25.1",
        "webpack-cli": "^3.1.2",
        "webpack-dev-server": "^3.1.14",
        "webpack-sources": "^1.0.2",
        "yargs": "^12.0.5"
    }
}

我只想知道如何从上面的 gruntfile 中翻译一个命令,这会给我一个先机。

标签: node.jsnpmwebpackgruntjspackage.json

解决方案


推荐阅读