我有两个项目EasyUI和EasyUI-Layout。 EasyUI-Layout依赖于EasyUI。我设置了grunt文件来构建它们并将它们推送到github。以下是删节的grunt文件:
// easyui
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify:...,
bumpup: {
file: 'package.json'
},
shell: {
git: ...
},
watch: ...
});
grunt.registerTask('g', ['bumpup', 'browserify', 'shell:git']);
};
// easyui-layout
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify:...,
bumpup: {
file: 'package.json'
},
shell: {
git: ...,
npm: ...
},
watch: ..
});
grunt.registerTask('g', ['shell:npm', 'bumpup', 'browserify', 'shell:git']);
};
我想要的是,当我构建并提交EasyUI-Layout项目时,其包json将使用EasyUI的最新版本号进行更新。例如,目前,package.json中EasyUI依赖的版本号仍然停留在0.0.0。这是删节的package.json文件:
{
"name": "easyui-layout",
"version": "0.0.3",
"dependencies": {
"easyui": "0.0.0"
}
}
说EasyUI版本号是0.0.7,那么下次我用grunt构建EasyUI-Layout时我希望package.json为:
{
"name": "easyui-layout",
"version": "0.0.4",
"dependencies": {
"easyui": "0.0.7"
}
}
我认为这可能是碰撞或碰撞?但是一些实验让我无处可去。
答案 0 :(得分:0)
不,应该手动指定这些类型的东西。您可以使用semver范围来自动安装包
答案 1 :(得分:0)
让我回答我自己的问题。由于我将EasyUI发布到npmjs.org,因此我们假设最新版本在那里。这是EasyUI-Layout软件包的删节grunt文件:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
shell: {
npm: {
command: [
'npm install easyui@latest --save'
].join('&&')
}
}
});
这只是迫使npm安装最新版本的EasyUI并更新package.json文件。
这很简单。不需要其他grunt任务,自定义或其他,与semver无关。