私はprivate npm reposのCoffeeScriptで構築されたアプリケーションを構築しています。デプロイメント言語に依存せず、各アプリケーションでCoffeeScriptのバージョンを指定できるように、CoffeeScriptを各ライブラリの依存として、npmインストール時にJavaScriptに組み込みます。npmにcoffeescriptをインストールする
npmのインストールはスタンドアロンのreposではうまく動作しますが、別のレポが構築されていることに依存するレポをインストールしようとすると失敗します。だから、
私はpackage.json
これ含みrepo-a
、持っている場合:
"dependencies": {
"coffee-script": "~1.2.0"
},
"scripts": {
"install": "./node_modules/coffee-script/bin/cake install"
}
とrepo-b
、そのpackage.json
これが含まれています
install
で、このようになります
Cakefile
を持って
"dependencies": {
"coffee-script": "~1.2.0",
"repo-a": "git+ssh://[email protected]:myrepo.git"
},
"scripts": {
"install": "./node_modules/coffee-script/bin/cake install"
}
をタスクはnpm install
フック:
{print} = require "util"
{spawn} = require "child_process"
coffee = "./node_modules/coffee-script/bin/coffee"
echo = (child) ->
child.stdout.on "data", (data) -> print data.toString()
child.stderr.on "data", (data) -> print data.toString()
child
install = (cb) ->
console.log "Building..."
echo child = spawn coffee, ["-c", "-o", "lib", "src"]
child.on "exit", (status) -> cb?() if status is 0
task "install", "Install, build, and test repo", install
点の
npm install
repo-a
用のための作品が、このメッセージを表示してrepo-b
で失敗した:未完成___coffee-script.npm
ディレクトリがnode_modules
に存在
sh: ./node_modules/coffee-script/bin/cake: No such file or directory
その時点で。
もちろん、app.js wrapperを使用するほうがはるかに簡単ですが、私はCoffeeScriptではなくJavaScriptを導入する必要があります。どのように私はこれを動作させることができるか誰に教えてもらえますか?
何が価値があるため、私が頼りにする場合、このアプローチは動作しますグローバルな 'cake'バイナリです。ローカルにインストールされた' cake'を指定しているので失敗します。 –