【问题标题】:Installing Node Grunt Locally在本地安装 Node Grunt
【发布时间】:2013-03-24 13:24:49
【问题描述】:

我正在重新设计我的构建系统,并且我已经阅读了带有 grunt 的 node.js 是一个不错的选择。我也没用过,有点麻烦。

问题是我想建立一个可移植的构建环境,我可以将它包含在我的项目的版本控制中(也许这是不可能的)。让 node.js 和 npm 工作没有问题。但是,我看到的每条安装 grunt 的指令都说要使用带有 npm 的 -g 标志,它会在全局范围内安装它。因为我想要一个完全可移植的环境,所以我试图把它关掉,但我不能咕噜咕噜地工作。

是我遗漏了什么,还是我试图做的事情不可行?

【问题讨论】:

  • 我最终在这个项目中使用了 ant。我本来希望 grunt 工作,但我负担不起更多时间在项目上,而且我能够让 ant 在我的环境中启动并运行得更快。

标签: node.js build-automation portable-executable gruntjs


【解决方案1】:

看看http://gruntjs.com/getting-started

Grunt 最近被拆分为项目本地依赖项 (grunt) 和命令行启动器 (grunt-cli)。后者应该全局安装。

作为确保您可以在任何地方构建的额外提示:确保在使用npm install 时使用--save--save-dev 参数将所有依赖项保存在package.json 中。更多信息:https://npmjs.org/doc/install.html

【讨论】:

  • 感谢您提供有用的信息。我确实看过您引用的文档。我注意到他们仍然需要在全球范围内安装grunt-cli。有什么办法吗?
  • 几乎不需要解决这个问题。 grunt-cli 所做的只是启动嵌入到您项目中的 grunt 版本。把它当作一个约定。依赖它不会使您的项目的可移植性降低。
  • 您可以在本地安装 grunt-cli 并使用 npm 脚本启动工作流程。见页面底部:npmjs.org/package/grunt-cli
【解决方案2】:

https://www.npmjs.com/package/grunt-cli#installing-grunt-cli-locally:

在本地安装 grunt-cli

如果您更喜欢惯用的 Node.js 方法来开始项目 (npm install && npm test),请使用 npm install grunt-cli --save-dev 在本地安装 grunt-cli。然后将脚本添加到您的 package.json 以运行相关的 grunt 命令:"scripts": { "test": "grunt test" }。现在 npm test 将使用本地安装的 ./node_modules/.bin/grunt 可执行文件来运行你的 Grunt 命令。

要了解有关 npm 脚本的更多信息,请访问 npm 文档:
https://docs.npmjs.com/misc/scripts.

【讨论】:

    【解决方案3】:

    您可以通过调用以下命令来使用本地 grunt,而无需全局 (-g) 安装 grunt-cli:

    node node_modules/grunt-cli/bin/grunt --version
    

    当然首先你需要将它安装在你本地的项目中,并且 grunt 版本大于 0.3;例如:

    npm install grunt-cli
    npm install grunt@0.4.5
    

    或者将它们都添加到您的 packages.json 并调用

    npm install  
    

    当您无法像我在 https://stackoverflow.com/a/39046355/2201879 中描述的那样全局安装任何软件包时,这也应该会有所帮助

    【讨论】:

      【解决方案4】:

      下面是命令行代码,它将在您的项目文件夹中安装最新版本的 Grunt,并将其添加到您的 devDependencies:

      npm install grunt --save-dev
      

      对于 gruntplugins 和其他节点模块也可以这样做。如以下安装 JSHint 任务模块的示例所示:

      npm install grunt-contrib-jshint --save-dev
      

      在插件页面查看当前可用的 gruntplugins,以便在您的项目中安装和使用。

      完成后,请务必将更新后的 package.json 文件与您的项目一起提交!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-20
        • 2016-07-24
        • 2018-01-29
        • 2019-03-08
        • 2014-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多