我刚用yeoman创建了一个新的AngularJS应用程序。我注意到在创建的package.json文件中,大多数devDependencies都是过时的候选版本。
例如"grunt-contrib-copy": "0.4.0rc7"
,而不是"grunt-contrib-copy": "~0.4.1"
。
有没有办法让这些包成为最新版本?或者我手动必须说明要使用的版本?
由于
答案 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')));
};
您将在项目生成时保留最新版本的软件包。