【问题标题】:grunt js installing packagesgrunt js 安装包
【发布时间】:2012-11-07 22:41:35
【问题描述】:

我正在使用 grunt 构建一个 grunt javascript 项目,并且我有一个 package.json 文件,它看起来像:

{
   ... name, author, etc here ...

   "dependencies": {
      "grunt-html":"0.2.1"
   }

 }

我可以运行npm install 来安装 grunt-html,这工作得很好。但是当我添加新的依赖项时,团队中的所有开发人员都必须知道再次运行npm install。有没有办法自动安装尚未安装的任何软件包?我是否应该始终运行 npm install 以确保我是最新的?

【问题讨论】:

    标签: npm gruntjs


    【解决方案1】:

    是的npm install 是 IMO 最简单的方法。让每个人都熟悉其他 npm 命令也可以更轻松地管理部门。如:

    • npm ls 列出当前安装的模块。
    • --save 标志,即npm install grunt-html --save,用于安装包和版本并将其插入您的package.json
    • npm prune 删除未包含在您的 package.json 中的模块。

    管理依赖项的其他方法是提交存储库中的node_modules 文件夹,以避免其他开发人员不得不运行npm install。或者对于更复杂的项目,考虑使用npm shrinkwrap 将依赖项锁定到特定版本:npm shrinkwrap docs

    【讨论】:

    • 出于这个原因提交 node_modules 似乎是个好主意。您对此有何看法?
    • 我根据项目使用三种方法之一。主要是npm install,因为我在一个小团队中。如果您不密切关注部门,提交node_modules 会很好,因为它可以帮助防止部署时站点损坏。每种方法都有其优缺点,具体取决于项目。
    • 有没有办法可以“保存”到package.json 已安装的软件包(如果之前没有使用--save 标志运行npm install)?
    • 是的。我相信您可以执行npm init,这将创建一个新的package.json 或与现有的package.json 文件合并。包括任何已安装的软件包。
    【解决方案2】:

    我没有尝试过 grunt-install-dependencies (https://github.com/ahutchings/grunt-install-dependencies),但这似乎可以满足您的需求。只需将命令 install-dependencies 作为您自定义定义的 grunt tasts 中的第一个任务添加,例如

    grunt.registerTask('build', ['install-dependencies', 'useminPrepare', ... ]);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 2012-05-26
      • 2013-09-27
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多