3

Web サイトのファイル/フォルダー構造をきれいにしたい。そのため、コンパイルされたバージョンと同じフォルダーに coffescript ファイルを配置したくありません。

開発中、コンパイラの --watch キーを使用しています。以前にこのコマンドを使用しました

coffee -cw ./ ./

Web サイトのルートからこれを起動すると、すべての coffeescript ファイルに対して再帰的に正常に機能しました。しかし、問題が 1 つあります。コンパイルされたファイルが同じフォルダーに置かれるのを避けようとしています。

コンパイルに「すべてのcoffeescriptファイルをコンパイルして、コンパイルされたバージョンを親フォルダーに入れてください」と言うことができますか?

アップデート:

わかった。ここで少し説明を加えます。つまり、私はこのフォルダ構造を持っています

app
  |- css
  |- images
  |- js
      |- coffee
      |- libs
      |- controllers
               |- coffee
      |- services
               |- coffee
               |- loggers
                      |- coffee

ご想像のとおり、すべての coffeescript ファイルをフォルダー内に保存したいのですcoffeeが、それらを親フォルダーにコンパイルします。たとえば、ロガーをもう 1 つ追加したい場合は、app/js/services/loggers/coffeenewLogger.coffee内に追加し、コンパイラがそれをコンパイルしてapp/js/services/loggers内に配置します。newLogger.js

coffee各フォルダー内でこのコマンドを使用できます

 coffee -cw -o ../ ./

したがって、この場合、4 つcoffeeのフォルダーがあり、それぞれに対して 4 つのコンパイラー インスタンスが実行されています。それらを 1 つのインスタンスに置き換えることはできますか?

4

5 に答える 5

4

コーヒースクリプトのドキュメントから:

src の .coffee ファイルのディレクトリ ツリーを、lib の .js ファイルの並列ツリーにコンパイルします。

coffee --compile --output lib/ src/
于 2013-06-06T04:18:45.907 に答える
3

gruntjsタスク マネージャーで実行できます。grunt を使用すると、維持したい任意のフォルダー構造を指定できます。

コンパイル後にすべての js ファイルを醜くするタスクを追加することもできます。

Grunt は、ソース ファイルを監視し、変更のたびに再コンパイルできるため、開発に非常に役立ちます。

現在、プロジェクトでフロントエンドを管理するために使用しています。私たちの仕事は次のとおりです。

  • .coffee.jadeおよび.lessファイルのコンパイル。
  • .js結果と.cssファイルの連結。
  • 連結ファイルの縮小と醜化。
  • Amazon S3 へのデプロイ。

ディレクトリからすべてのファイルgruntfile.coffeeをコンパイル、連結、醜化、展開する例を次に示します: https://gist.github.com/lbeschastny/5716323 (まだテストしていません)。.coffeeassets/js/

gruntサイトの開始セクションで、それらを実行する方法の詳細な手順を使用して、より多くの例を見つけることができます

于 2013-06-05T19:04:25.573 に答える
0

したがって、この場合、4 つのコーヒー フォルダーがあり、それぞれに対して 4 つのコンパイラ インスタンスが実行されています。それらを 1 つのインスタンスに置き換えることはできますか?

いいえ。Coffee コンパイラは、ソースのディレクトリ パスのプレフィックスを変更して出力パスを生成することのみをサポートしています。サフィックス like の追加はサポートされていません../

コマンド ライン ユーティリティはcoffeeCoffescript で記述されており、ソースは十分に文書化されているため、必要なオプションを追加するために自分で変更できます。最も簡単なのは、単に--outputオプションの意味を変更することです。(ただし、変更を世界と共有することはできません。これは残念なことです。)変更するだけでよいと思います。

  dir       = if opts.output then path.join opts.output, baseDir else srcDir

に:

  dir       = if opts.output then path.join baseDir, opts.output else srcDir

outputPath()関数内: command.coffee行 261

于 2013-06-02T19:52:44.270 に答える
0

別の coffeescripts フォルダー構造とコンパイル済みフォルダー構造を完成させる必要があります。

app
  |- css  
  |- images
  |- js
      |- libs
      |- controllers
      |- services
               |- loggers

これには、すべてのコーヒー スクリプトが含まれます。

app-src
  |- js
      |- controllers
      |- services
               |- loggers

次に、 app と app-src の両方のルート フォルダーでコンパイルしますcoffee -cw app app-src

于 2013-05-11T10:21:40.493 に答える