【问题标题】:npm install is not installing grunt js from dependenciesnpm install 没有从依赖项中安装 grunt js
【发布时间】:2013-11-28 02:44:06
【问题描述】:

我正在尝试自动为开发人员自动安装所有软件包。所以我在同一个目录中有 package.json 和 grunt 文件。我想先执行 npm install 以便安装所有依赖项,并且当开发人员在命令行上执行 grunt 时,一切都会准备就绪。我可以知道为什么它不起作用。另一件事是我可以知道依赖和开发依赖之间的区别。

{
  "name": "TestProject",
  "version": "0.1.0",
  "description": "this project is for test",
  "main": "index.js",
  "dependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-uglify": "~0.2.7",
    "uglify-js": "~2.4.3",
    "grunt-contrib-watch":"~0.5.3",
    "grunt-contrib-jshint": "~0.7.2",
    "qunit": "~1.11.0"
  },  
  "devDependencies": {
    "grunt": "~0.4.2",
    "qunit": "~1.11.0",
    "grunt-contrib-jshint": "~0.7.2",
    "grunt-contrib-nodeunit": "~0.2.0",
    "grunt-contrib-uglify": "~0.2.2",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-watch":"~0.5.3"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "BSD-2-Clause"
}

【问题讨论】:

    标签: node.js gruntjs


    【解决方案1】:

    您可能缺少 Grunt 的命令行实用程序。

    这可以安装在你的shell中,使用

    npm install -g grunt-cli
    

    CLI 独立于grunt 包或grunt- 插件分发。您应该在同一个开发环境设置文档中包含全局安装grunt-cli 的说明,其中指出如何设置nodenpmbower 等。

    更新

    如果你坚持要在npm install 上安装grunt-cli,我想一个选项可能是使用npm scripts

    包含在您的 package.json(注意:未经测试)

    {
      "postinstall": "npm i -g grunt-cli"
    }
    

    不过,我不鼓励这样做。只需手动安装即可。

    【讨论】:

    • 嗨 Nico,我知道这部分,但我想自动化它。 npm 应该看看依赖并自动安装吧?
    • 还有一点,那有依赖有什么用呢?
    • package.json 中的依赖项是特定于包的。 grunt-cli 等工具不应包含在 package.json 中,就像 npmnodebowercomponent 不应该一样。它们是 CLI 工具,而不是运行时(甚至是开发)依赖项。您的项目不直接依赖于 CLI。在全球范围内,您确实做到了。
    • 完美,谢谢
    • 安装 grunt 后,npm install 会自动安装剩余的依赖项。你是正确的节点,咕噜是为此而生的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2016-01-13
    相关资源
    最近更新 更多