使用Yeoman构建package.json和Gruntfile

时间:2014-02-04 22:57:13

标签: templates package gruntjs yeoman

截至今日的Yeoman新手。我正在构建一个生成器,它将创建一个新的package.json,其中包含有助于构建应用程序Gruntfile的数据。由于(可能)不必要的原因,我将Yeoman片分成2个文件。以下是index.js的摘录......

 // index.js 
myGenerator.prototype.packagejson = function packagejson() {
    var projectName = this.projectName;
    var pkg = {
      "name": projectName,
      "version": "0.0.0",
      "dependencies": {},
      "srcDir": process.cwd(),
    };
    this.write('package.json',JSON.stringify(pkg));
};

myGenerator.prototype.gruntfile = function gruntfile(){
    this.template('Gruntfile.js','Gruntfile.js');
}
  1. 这将创建一个package.json文件并将JSON字符串写入该文件。 projectName是在命令行中加载模板时询问的提示。 Process.cwd()引用当前文件目录。

  2. 然后它从模板创建一个Gruntfile。以下情况除外:

    //Grunt - Yeoman template
      module.exports = function(grunt){
       grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
         sync:{
           dev:{
            files:[ 
             {src:['./index.html','./app.css','./js/*.js'],dest:'m:/dev/project/'},
             {cwd:"<% pkg.srcDir %>", src:['**/*.js','**/*.css','**/*.html'], dest:'m:/dev/project/'}
            ]
           }
         }
       })
     };
    
  3. 这在我看来应该......

    1. 创建由index.js生成的路径(通过process.cwd()),该路径打印到package.json文件。这是通过grunt.file.readJSON读入gruntfile的。
    2. 然后可以通过object属性访问路径引用(字符串):pkg.srcDir。
    3. 但是,我只回来一个空字符串。

          // Gruntfile.js for new application
          cwd:"", src:['**/*.js','**/*.css','**/*.html'], dest:'m:/dev/project/'
      

      我无法读取package.json信息并填充我的gruntfile的任何明显原因?

      由于

1 个答案:

答案 0 :(得分:3)

在开场模板标记中添加双倍百分比

<%% pkg.srcDir %>