Angularjs 更新yeoman package.json文件

Angularjs 更新yeoman package.json文件,angularjs,gruntjs,yeoman,Angularjs,Gruntjs,Yeoman,我刚刚用yeoman创建了一个新的AngularJS应用程序。我注意到,在创建的package.json文件中,大多数devdependency都是过时的候选版本。 例如“grunt contrib copy”:“0.4.0rc7”,而不是“grunt contrib copy”:“~0.4.1”。 有没有办法使这些软件包成为最新版本?或者我必须手动声明要使用哪个版本 谢谢您可以 "grunt-contrib-copy": "latest" 在生成器中的模板\u package.json中,您

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

谢谢

您可以

"grunt-contrib-copy": "latest"
在生成器中的模板
\u package.json
中,您将始终拥有包的最新版本

要么让生成器触发shell命令

npm install --save-dev grunt-contrib-copy
在你的约曼一代任务结束时

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')));
};

在生成项目时,您将得到最新版本的包。

您必须使用非常旧版本的角度生成器

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


如果您想升级已经生成的版本,只需运行
npm安装-D grunt contrib copy
。您还应该编辑生成器中的
\u package.json
,以便在下次生成时DEP是最新的。

您不应该使用
最新版本的
,因为它肯定会在某个点上崩溃。我完全同意,但我认为允许某人使用给定文件的最新版本初始化新项目没有任何问题项目生成时的依赖关系(这是我回答的第二部分)。那么这个版本是固定的。这就像一条通往你的捷径;npm信息grunt;npm安装——使用我在新项目中选择使用的最后一个版本X.Y.Z保存dev grunt#vX.Y.Z。使用
最新版本和使用最新版本初始化是两件不同的事情。很明显,我只是反对前者,因为这是一种非常糟糕的做法,你不应该推荐别人这样做。我也不理解你的第二点。为什么你要经历所有这些麻烦,而不只是将_package.json版本编辑为最新版本
npm view grunt contrib copy version
。我不知道确切的上下文是什么,但我可以很容易地想象我在哪里工作,维护内部生成器的人在每次启动新项目时都希望这样做已生成,对于某些依赖项,将在生成时自动选择最新版本。这是内部流程和惯例的问题。但我同意我的答案在某些方面有点肮脏。它更多的是提供一些技术指导,而不是提供一些实际的建议。