Npm 如何获得grunt项目&x27;从命令行下载的版本?

Npm 如何获得grunt项目&x27;从命令行下载的版本?,npm,gruntjs,Npm,Gruntjs,我希望将我的grunt项目与TeamCity continuous integration server集成。我需要一种方法使TeamCity生成的包名包含项目的版本号,该版本号位于项目根目录下的package.json中。我似乎找不到一个grunt命令来提供这一点,我求助于使用grep。从命令行获取grunt项目版本是否有一种未经记录的方法?因此,在grunt中,您可以执行以下操作: module.exports = function(grunt) { grunt.initConfig

我希望将我的grunt项目与TeamCity continuous integration server集成。我需要一种方法使TeamCity生成的包名包含项目的版本号,该版本号位于项目根目录下的package.json中。我似乎找不到一个grunt命令来提供这一点,我求助于使用grep。从命令行获取grunt项目版本是否有一种未经记录的方法?

因此,在grunt中,您可以执行以下操作:

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        asciify: {
            project: {
                text: '<%= pkg.name %>',
                options: {
                    font: 'speed',
                    log: true
                }
            }
        }
    });
};
grunt-available-tasks (master) $ npm version
{ http_parser: '1.0',
  node: '0.10.21',
  v8: '3.14.5.9',
  ares: '1.9.0-DEV',
  uv: '0.10.18',
  zlib: '1.2.3',
  modules: '11',
  openssl: '1.0.1e',
  npm: '1.3.11',
  'grunt-available-tasks': '0.3.7' }
最后一个是项目名称和版本

编辑:关于您的评论,请尝试以下操作:

module.exports = function(grunt) {
    grunt.registerTask('version', 'Log the current version to the console.', function() {
        console.log(grunt.file.readJSON('package.json').version);
    });
}
编辑2:所以我对Grunt不满意,因为Grunt在做任何事情时都很冗长。如果您想要只记录版本而不记录其他内容的文件,那么在
package.json
旁边的根目录中创建一个名为
version.js
的新文件。在该文件中粘贴以下内容:

module.exports = function() {
    console.log(require('./package.json').version);
}();

并用
节点版本.js
调用它。我最喜欢这种方法,因为它比Grunt方法更快,而且更小。所以,享受吧

第二个答案是我目前正在做的事情。我希望找到一个grunt命令,从命令行获取项目版本,也许我会自己写一个:)啊,好的。请参阅我的更新答案,了解可用于此任务的任务。:)谢谢你,本。效果非常好。我没有成功地将无关的输出抑制为输出,例如“运行”version“task”和“完成,没有错误”。因此我可能会从CI服务器使用sed或类似的东西:grunt version | sed-n 2p