使用Yeoman和TriggerIO

3
我正在尝试将trigger.io与yeoman一起使用。我使用yeoman进行整个构建周期(搭建angularjs应用程序/测试/...),并使用trigger.io进行部署。
Trigger.io生成的所有内容都在“src”目录中,而yeoman生成的所有内容都在“app”目录中。
有没有办法让Trigger.io写入“app”目录而不是“src”目录? 编辑:似乎可以这样做,但不太可行,因为需要跟踪yeoman生成的新目录/文件:
  • ln -s app/index.html index.html
  • ln -s app/styles styles
  • ln -s app/scripts scripts
  • : 等等,对于任何相关的文件继续操作
1个回答

2
我最终将 dist 符号链接到 src,因为我们需要 Yeoman 来编译 SCSS 和 CoffeScript 文件。遗憾的是,在创建 dist 目录时不能运行 yeoman server。另外一个不太好的地方是,当你再次运行 yeoman server 时,它会清理 dist 目录。
我计划创建一个 Yeoman 生成器来生成 Trigger 的代码,并添加一些 Grunt 任务,以模仿我在使用 Sinatra 进行测试和开发时创建的 Rakefile 任务(例如 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'
  },
}

现在,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来帮助从Yeoman内部运行forge。我还写了一篇博客介绍如何为`forge`创建更简洁的输出


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接