3

我正在尝试将 trigger.io 与 yeoman 一起使用。我在整个构建周期(脚手架 angularjs 应用程序/测试/..)中使用 yeoman,在部署中使用 trigger.io。
Trigger.io 生成所有在 'src' 和 yeoman 都在 'app' 目录。

无论如何让Trigger.io写入'app'而不是'src'目录?

编辑这似乎可行,但不是很可行,因为它需要跟踪 yeoman 生成的新目录/文件:

  • ln -s app/index.html index.html
  • ln -s 应用程序/样式样式
  • ln -s 应用程序/脚本脚本
  • :继续任何相关的事情
4

1 回答 1

2

我最终符号链接dist到,src因为我们需要 Yeoman 编译出 SCSS 和 CoffeScript 文件。创建目录yeoman server时无法运行这里的无赖。另外令人沮丧的是,当您再次清理目录时。yeoman builddistyeoman serverdist

我计划为 Trigger 的生成器创建一个 yeoman 生成器,并添加一些 grunt 任务来模仿Rakefile我在使用 Sinatra 测试和开发时创建的任务(例如yeoman simulatoryeoman deviceyeoman testflight)。

编辑:我现在直接向我添加了一些任务gruntfile.js。我添加grunt-contrib-copy并添加了以下子任务。

copy: {
  app: {
    files: {
      "src/": "app/**",                 // core app files
    },
  },
  compass: {
    files: {
      "src/styles/": "temp/styles/**",  // drop in the compiled coffeescript
    }
  },
  coffee: {
    files: {
      "src/scripts/": "temp/scripts/**" // drop in the compiled scss
    }
  }
},

我将这些任务添加到适当的监视命令中,并添加了一个新监视来监视app目录。

watch: {
  coffee: {
    files: 'app/scripts/**/*.coffee',
    tasks: 'coffee copy:coffee reload'
  },
  compass: {
    files: [
      'app/styles/**/*.{scss,sass}'
    ],
    tasks: 'compass copy:compass reload'
  },
  app: {
    files: [
      'app/**/*.{html,png,json,css,js}'
    ],
    tasks: 'copy:app'
  },
}

Now yeoman server,它调用yeoman watch,保持src最新。

我还带进grunt-shell来做以下事情。

shell: {
  forge_build: {
      command: 'forge build ios 2>&1 | tee output',
      stdout: true
  },
  forge_run_device: {
      command: 'forge run ios --ios.device device',
      stdout: true
  },
  forge_run: {
      command: 'forge run ios',
      stdout: true
  }
}

并创建一些任务,例如:

grunt.registerTask("sim", 'copy shell:forge_build shell:forge_run');
grunt.registerTask("device", 'copy shell:forge_build shell:forge_run_device');

我对它并不完全满意,但它让我可以继续运行yeoman server并下降到其他地方的控制台并运行yeoman device以将其带到设备中。它还将src目录保存在可以签入的位置。

最终,我将把它移到一个 yeoman 插件中,并添加一些更具体的构建任务来清理适当目标(例如 iOS、Android)的 src 目录,以保持目录大小较小。

编辑:我创建是grunt-forge为了帮助forge从 Yeoman 内部运行。我还写了一些关于为 `forge 创建更简洁的输出的博客。

于 2013-01-31T20:27:57.310 回答