J'ai utilisé coffeescript pendant un moment. Maintenant, je dois écrire un paquet npm, puis-je l'écrire dans coffeescript ou compiler coffeescript en javascript?
Je vais vous suggérer d'écrire votre paquet dans coffeescript, mais de le publier uniquement en javascript. Je le fais comme ça:
src
lib
src
est engagé dans mon dépôt Git, lib
est dans mon .gitignore
lib
est publié dans npm, src
est dans mon .npmignore
coffee-script
est dans ma devDependencies
Vous pouvez jeter un oeil sur un de mes paquets, refix , pour vous inspirer:
npm install refix
Vous pouvez écrire des modules NPM dans coffeescript, mais pour qu'ils soient utilisables par les utilisateurs de JS, ils doivent être compilés pour JS avant toute publication sur NPM.
package.json
simplifie cette tâche grâce à son hook prepublish
qui exécute le script spécifié avant la publication. Voici un exemple de hook prepublish
NPM dans zombie.js
https://github.com/assaf/zombie/blob/master/package.json#L16
J'ai écrit des paquets npm dans CoffeeScript à partir de zéro. Je vous encourage à utiliser CoffeScript pour les nœuds ainsi que pour le navigateur. Cependant, avant de pouvoir utiliser ou publier votre module, vous devez compiler le code source CoffeeScript en JavaScript. Cela ne devrait toutefois pas vous empêcher d'utiliser CoffeeScript.
Conseil: Pendant le développement, utilisez coffee -cw yourfile.coffee
(ligne de commande) pour surveiller les modifications et compiler le fichier lors de la sauvegarde.
Si beaucoup de vos modules ont coffee-script
dans leur devDependencies
, il est utile d'installer globalement coffee-script
au lieu de l'installer pour chaque module (ce qui prend beaucoup plus de temps).
coffee-build est un gestionnaire de version global pour coffee-script
.
Ajoutez simplement ces 2 scripts à votre package.json
:
{
"name": "my-coffee-module",
"scripts": {
"build": "coffee-build -v 1.11.x -b -o js src",
"postinstall": "npm run build"
}
}
Notez que -v 1.11.x
n'est pas une version exacte, ce qui permet les mises à niveau implicites.
Le seul inconvénient est que les utilisateurs doivent npm install -g coffee-build
avant de pouvoir installer votre module.