2016-09-29 1 views
0

Je gère une bibliothèque JS frontend. Pour commencer, je l'ai écrit dans Rails, car c'est ce que je sais. Cela fonctionne très bien si vous avez installé Rails, mais c'est une manière assez stupide de travailler pour quelqu'un d'autre.Comment organiser un projet de bibliothèque JS open source?

Quelle est la meilleure façon d'organiser une bibliothèque JS frontend écrite dans CoffeeScript sur Github?

Il faut des moyens simples pour

  1. construire une version de version compilée compressé à partir d'un ensemble de fichiers CoffeeScript.

  2. exécuter une nouvelle version dans le navigateur au cours du développement

  3. exécuter une suite de tests

Répondre

1

je ne suis pas sûr que ma suggestion va répondre à votre question ou non.

ma suggestion sont

  1. utiliser l'outil de gestion des dépendances, par exemple, NPM ou charmille pour gérer 3e parties lib
  2. utilisation construire outil, par exemple, grognement ou avalent ou webpack pour construire votre packange y compris rapetisser, obtenir nécessaire uniquement des fichiers, compiler café js
  3. utilisation mocha ou autre framework de test pour exécuter essai

intègrent alors les tâches ci-dessus à l'outil ci, par exemple, pour les jenkins automatisent

votre travail jenkins fera ces étapes de tâche par étape

  1. code de traction github auto
  2. nettoyer votre repo, par exemple, git reset --hard & & git -xdf propre
  3. NPM installer ou installer charmille
  4. course webpack ou grognement ou avalent
  5. test de course
+0

Merci. Je suis en train de configurer Gulp maintenant. –

1

Ma recommandation serait de le publier en tant que module de NPM avec une structure de répertoires comme ceci:

package.json 
.gitignore (include lib and dist) 
.npmignore (include test) 
webpack.config.js 
src/ 
    index.coffee 
    (other sources) 
lib/ (generated by npm script) 
    index.js (compiled) 
dist/ (optional - for browser bundle) 
    bundle.js 

Le soutien webpack/dist est facultative, mais sera pratique pour tous les utilisateurs qui veulent utiliser la bibliothèque sans webpack ou browserify.