在运行yeoman发电机后安装凉亭包

时间:2014-05-09 18:49:58

标签: node.js dependencies yeoman bower yeoman-generator

我无法让这个工作,甚至通过谷歌找到解决方案如何让它工作。

去Bowers网站显示他们有一个程序化的API,看起来我应该可以在节点中运行它,当然我可以不遵守我的.bowerrc文件并将它们安装到我自己创建的dev文件夹中。< / p>

这与自耕农的工作方式有关吗?文件和目录是否在完成记录()之后仍然不可用?

这是我的index.js

'use strict';
var util = require('util');
var path = require('path');
var yeoman = require('yeoman-generator');
var chalk = require('chalk');
var bower = require('bower');


var FoprojectGenerator = yeoman.generators.Base.extend({
  sayHello: function(){
    console.log(this.yeoman);
  },
  scaffoldFolders: function(){
    this.mkdir("working");
    this.mkdir("working/assets");
    this.mkdir("working/assets/sass");
    this.mkdir("working/assets/coffee");
    this.mkdir('dev');
  },
  copyMainFiles: function(){
    this.copy("_index.html", "working/index.html");
    this.copy("_gruntfile.js", "Gruntfile.js");
    this.copy("_package.json", "package.json");
    this.copy("_bower.json", "bower.json");
    this.copy("_.bowerrc", ".bowerrc");
    this.copy("assets/sass/_site.sass", "working/assets/sass/site.sass");
    this.copy("assets/sass/_mixins.sass", "working/assets/sass/_mixins.sass");
    this.copy("assets/sass/_normalize.sass", "working/assets/sass/_normalize.sass");
    this.copy("assets/coffee/_scripts.coffee", "working/assets/coffee/scripts.coffee");
  },
  installDependencies: function(){
    var done = this.async();
    console.log("\nInstalling Node Dependencies\n");
    this.npmInstall("", function(){
      console.log("\nInstalling Bower Packages\n");
      bower.commands
      .install()
      .on('end', function(){
        done();
      });
    });
  }
});

module.exports = FoprojectGenerator;

就像我说它运行得很好,但它将它安装在bower.json旁边,就像我在.bowerrc文件中定义的dev文件夹一样,

{
  "directory": "dev/bower_components"
}

当我在yeoman完成后运行bower install时,它会在dev文件夹中安装bower_components文件夹,就像它应该的那样。

非常感谢任何指导!

1 个答案:

答案 0 :(得分:0)

也许您使用的Yeoman生成器可能会强制您在特定于certian的路径上安装deps。

打开终端并转到应用的根目录。 输入ls -la。 如果您看到.yo-rc.json,请输入cat .yo-rc.json

它是否显示如下路径的任何特定配置?

{
  "generator-backbone-laser": {
    "appPath": "app"
  }
}

如果是,请删除.yo-rc.json。 Yoeman生成器的创建者有时会在该文件上设置应用程序路径。