更新yeoman package.json文件

时间:2013-09-12 20:57:50

标签: angularjs gruntjs yeoman

我刚用yeoman创建了一个新的AngularJS应用程序。我注意到在创建的package.json文件中,大多数devDependencies都是过时的候选版本。 例如"grunt-contrib-copy": "0.4.0rc7",而不是"grunt-contrib-copy": "~0.4.1"。 有没有办法让这些包成为最新版本?或者我手动必须说明要使用的版本?

由于

2 个答案:

答案 0 :(得分:5)

您必须使用Angular生成器的旧版本。 The latest one has all up-to-date dependencies

您可以使用以下代码更新生成器:npm update -g generator-angular

如果您想要破坏已生成的版本,只需运行npm install -D grunt-contrib-copy即可。您还应该编辑生成器中的_package.json,以便在下次生成时deps是最新的。

答案 1 :(得分:-3)

您可以设置

"grunt-contrib-copy": "latest"

在您的生成器中的模板_package.json中,您将始终拥有该软件包的最新版本。

要么让你的生成器触发shell命令

npm install --save-dev grunt-contrib-copy

在您的Yeoman生成任务结束时

var exec = require('child_process').exec;
var BlogGenerator = module.exports = function BlogGenerator(args, options, config) {
  yeoman.generators.Base.apply(this, arguments);

  this.on('end', function () {
    exec('npm install --save-dev grunt-contrib-copy', function (err, stdout, stderr) {
      this.installDependencies({ skipInstall: options['skip-install'] });
    }.bind(this));
  });

  this.pkg = JSON.parse(this.readFileAsString(path.join(__dirname, '../package.json')));
};

您将在项目生成时保留最新版本的软件包。