1

ビルド スクリプトを作成するための支援が必要な独自のディレクトリ構造があります。リンク(少し異なります) またはディレクトリ構造 は次
のとおりです。

client
  /extensions
  /sandbox
  /widgets
    /form
      /collections
      /models
      /views
      /styles
        custom.css
      /controllers
  main.coffee
server
  /views
    /layouts
    /errors
  app.coffee
  config.coffee

私が必要とするいくつかのもの:

  • watch タスクを含む coffeescript を server-dist + client-dist にコンパイルする
  • 他のすべてのファイルをネストされたフォルダーにコピーします。できれば監視タスクも使用します

問題:

  • coffeescript をコンパイルすると、.coffee ファイルが .js にコピーされ、ネストされたディレクトリにコピーされますが、require.js でロードされた .css / imgs などは残ります。それらも-distディレクトリ に入れる方法が必要です
  • /client フォルダーの Main.coffee は require.config であり、requirejs grunt ビルド ツールで使用して最適化できます。

とにかく、最も簡単な解決策は私が探しているものです。

4

1 に答える 1

1

私はうなり声を使用することになりました-次のタスクで:

  • clean : サーバー/クライアントのビルド ディレクトリをクリアします
  • watch : .coffee ファイルと両方のビルド ディレクトリを監視します
  • copy : クライアント/サーバー ファイルをコピーして、coffee タスクによって管理される .coffee ファイルを無視してディレクトリを構築します。
  • coffee : .coffee ファイルを .js にコンパイルし、それらをビルド ディレクトリに移動します。

現在のイテレーションの grunt ファイルは次のとおりです。

grunt.initConfig({

 clean: {
   build: ['client-dist', 'server-dist'],
   release: []
 },

 watch: {
   coffee: {
     files: ['client/**/*.coffee', 'server/**/*.coffee'],
     tasks: 'coffee reload'
   },
   reload: {
     files: ['client/**/*.!(coffee)', 'server/**/*.!(coffee)'],
     tasks: 'copy reload'
   }
 },

 copy: {
   client: {
     files: {
       "client-dist/": "client/**/*.!(coffee)"
     },
     options: {
       basePath: "client"
     }
   },
   server: {
     files: {
       "server-dist/": "server/**/*.!(coffee)"
     },
     options: {
       basePath: "server"
     }
   }
 },

 coffee: {
   compile: {
     files: {
       'server-dist/*.js': 'server/**/*.coffee',
       'client-dist/*.js': 'client/**/*.coffee'
       }
     }
 }

});

grunt.loadNpmTasks('grunt-contrib');
grunt.loadNpmTasks('grunt-reload');

grunt.registerTask('default', '');
grunt.registerTask('build', 'clean:build copy coffee watch');
于 2012-11-18T17:06:33.057 に答える