私はしばらくの間、CoffeeScript を使用しています。npm パッケージを作成する必要があります。CoffeeScript で作成できますか?それとも、CoffeeScript を JavaScript にコンパイルする必要がありますか?
5 に答える
パッケージをcoffeescriptで作成することをお勧めしますが、それはjavascriptでのみ公開してください。私はこのようにします:
- Coffeescriptコードが入ります
src - コードはにコンパイルされます
lib src私のgitリポジトリにコミットしています、lib私の中にあります.gitignorelibnpmに公開されsrc、私の中にあります.npmignorecoffee-scriptパッケージは私の中にありますdevDependencies
インスピレーションを得るために、私の簡単なパッケージを見て、修正することができます。
- https://github.com/linus/refix
npm install refix
NPM モジュールは coffeescript で作成できますが、JS ユーザーが使用できるようにするには、NPM で公開する前に JS にコンパイルする必要があります。
package.jsonprepublish公開する前に指定されたスクリプトを実行するスクリプトフックを使用すると、これが簡単になります。prepublish以下は、zombie.jsの NPM フックの例です。
https://github.com/assaf/zombie/blob/master/package.json#L16
多くのモジュールがcoffee-scriptに含まれている場合は、モジュールごとにインストールするのではなく、devDependenciesグローバルにインストールする方が便利coffee-scriptです (時間がかかります)。
coffee-buildは のグローバル バージョン マネージャーですcoffee-script。
次の 2 つのスクリプトを に追加するだけpackage.jsonです。
{
"name": "my-coffee-module",
"scripts": {
"build": "coffee-build -v 1.11.x -b -o js src",
"postinstall": "npm run build"
}
}
-v 1.11.x暗黙のアップグレードを許可する正確なバージョンではないことに注意してください。
唯一の欠点はnpm install -g coffee-build、モジュールをインストールする前に、ユーザーがしなければならないことです。
私は、npm パッケージを CoffeeScript でゼロから作成しました。ブラウザだけでなくノードにも CoffeScript を使用することをお勧めします。ただし、モジュールを使用または公開する前に、ソースの CoffeeScript を JavaScript にコンパイルする必要があります。ただし、CoffeeScript を使用することをためらう必要はありません。
ヒント: 開発中は、coffee -cw yourfile.coffee(コマンド ライン) を使用してファイルの変更を監視し、保存時にコンパイルします。
それが最善のアプローチかどうかはわかりませんが、技術的には、ほとんどのパッケージを CoffeeScript で作成することは可能です。
coffee基本的に、次のようにコマンドをラップするだけの JS ファイルを作成できます。
bin/howl.coffee
console.log 'Awwwooooo!'
bin/howl.js
#!/usr/bin/env node
var path = require('path');
var exec = require('child_process').exec;
var coffee = path.resolve(__dirname, '../node_modules/coffee-script/bin/coffee');
var howl = path.resolve(__dirname, './howl.coffee');
var command = coffee + ' ' + howl;
exec(command, function(error, stdout) {
if (error) { throw error };
console.log(stdout);
});
実行中node howl.js(または単にhowlグローバルにインストールされている場合) が出力されるようになりAwwooooo!ました。requireJavaScript「ラッパー」からCoffeeScriptに引数を渡すことで、他のCoffeeScriptファイルとアクセス引数のようなことを行うことができます。
とにかく、これをしない理由があるかもしれませんが、これまでのところうまくいったので、追加の観点からこれを提出することにしました.
この手法を使用した簡単なサンプル プロジェクトについては、https://www.github.com/joshuabc/packdownを確認してください。