browserifyを使用して、coffee-script プロジェクトの依存関係ツリーを取得しようとしています。
browserify -t coffeeify --deps ./script.coffee
プロジェクトには、コマンドラインから依存関係ツリーを出力するオプションが付属しているようです。
スクリプト.コーヒー
console.log 'hello'
require 'a.coffee'
エラーで爆発します(簡潔にするために編集):
... 予期しないトークン ILLEGAL parseDeps で (/.../module-deps/index.js:172:45) 完了時 (/.../browserify/node_modules/module-deps/index.js:152:13) applyTransforms で (/.../browserify/node_modules/module-deps/index.js:135:41) /.../browserify/node_modules/module-deps/index.js:112:17 で fs.js:266:14 で Object.oncomplete で (fs.js:107:15)
理想的には、browserify API を使用して依存関係ツリーの作成を自動化したいのですが、これをどのように達成するかは明らかではありません。
module-depsからさかのぼって作業を開始することは合理的であるように思われましたが、それが coffee-script プロジェクトの依存関係ツリーをたどるように設計されていることは明らかではありません。ただし、関連する GitHub プル リクエストは行いませんでした。この観点から、transform
browserifyがすでにcoffee-scriptからjavascriptに変換した後、browserifyを挿入して各ファイルの依存関係を読み取ることを望んでいましたが、module-depsはファイル名のみを取得し、javascriptソース自体は取得しないようです. 次のようなもの:
require('browserify')
.add('./script.coffee')
.transform(require('coffeeify')
.transform((file) ->
data = ''
write = (buf) -> data += buf
end = ->
## parse data for dependencies.
console.log "File ", file, "dependencies", mdeps(data)
@queue(data)
@queue(null)
return through(write, end)
)
mdeps
私が知る限り、関数が存在しないため、これは機能しません。パーサー (esprima など) の 1 つを使用してrequire
呼び出しを探す必要があると思います。
browserifyを使用してコーヒースクリプトの依存関係ツリーを印刷した人はいますか? これは非常に便利なように思えます。