モダンなJSライブラリのディレクトリ構成まとめ
JavaScriptのプロジェクトを新しく作るにあたってディレクトリ構成をどうするか悩んだので、オープンソースのライブラリなどを参考にすることに。ということで、モダンなJavaScriptライブラリ・フレームワークのディレクトリ構成をまとめてみました。
モダンと言ってはいますが、全然モダンじゃないライブラリも混ざってるかもしれないです。
jQuery
jquery ├── build │ └── lib ├── speed ├── src │ ├── ajax │ └── sizzle └── test ├── data │ ├── offset │ ├── selector │ └── support ├── qunit └── unit
jQuery Mobile
jquery-mobile ├── build ├── css │ ├── structure │ └── themes │ ├── default │ │ └── images │ └── valencia │ └── images ├── docs │ ├── _assets │ │ ├── css │ │ ├── images │ │ └── js │ ├── about │ ├── api │ ├── buttons │ ├── config │ ├── content │ ├── forms │ │ ├── checkboxes │ │ ├── radiobuttons │ │ ├── search │ │ ├── selects │ │ ├── slider │ │ ├── switch │ │ └── textinputs │ ├── lists │ │ └── images │ ├── pages │ │ ├── docs-links-urltest │ │ ├── dynamic-samples │ │ └── pages-themes │ └── toolbars │ ├── glyphish-icons │ └── images ├── experiments │ └── scrollview ├── external │ ├── r.js │ │ └── dist │ └── requirejs ├── js ├── tests │ ├── functional │ └── unit │ ├── button │ ├── buttonMarkup │ ├── checkboxradio │ ├── collapsible │ ├── controlgroup │ ├── core │ ├── degradeInputs │ ├── dialog │ ├── event │ ├── fieldContain │ ├── fixedToolbar │ ├── init │ ├── listview │ │ └── cache-tests │ ├── media │ ├── navbar │ ├── navigation │ │ ├── base-tests │ │ │ ├── app-base │ │ │ └── content │ │ ├── data-url-tests │ │ ├── dialog-param-test │ │ ├── form-tests │ │ └── path-tests │ │ ├── parent │ │ └── sub-dir │ ├── page │ ├── page-sections │ ├── select │ ├── slider │ ├── support │ ├── textinput │ ├── widget │ └── zoom └── tools
Prototype
prototype ├── dist ├── doc_assets │ └── images ├── ext │ └── update_helper ├── src │ └── prototype │ ├── ajax │ ├── dom │ └── lang ├── test │ ├── functional │ └── unit │ ├── caja_whitelists │ ├── fixtures │ └── templates └── vendor ├── caja_builder ├── legacy_selector │ └── repository ├── nwmatcher │ └── repository ├── pdoc ├── sizzle │ └── repository ├── slick │ └── repository ├── sprockets └── unittest_js
MooTools
mootools-core ├── Docs │ ├── Browser │ ├── Class │ ├── Core │ ├── Element │ ├── Fx │ ├── Request │ ├── Slick │ ├── Types │ └── Utilities ├── Packager ├── Source │ ├── Browser │ ├── Class │ ├── Core │ ├── Element │ ├── Fx │ ├── Request │ ├── Slick │ ├── Types │ └── Utilities └── Specs ├── 1.2 │ ├── Class │ ├── Core │ ├── Element │ ├── Native │ └── Utilities ├── 1.3base │ ├── Class │ ├── Core │ ├── Fx │ └── Types ├── 1.3client │ ├── Browser │ ├── Class │ ├── Core │ ├── Element │ ├── Fx │ ├── Request │ ├── Types │ └── Utilities ├── 1.4base │ └── Types ├── 1.4client │ ├── Element │ └── Fx ├── 2.0base │ ├── Core │ └── Types ├── 2.0client │ └── Browser └── Runner
Sizzle
sizzle ├── speed │ ├── frameworks │ └── system └── test ├── data └── unit
Underscore.js
underscore ├── docs │ └── images └── test └── vendor
Backbone.js
backbone ├── docs │ └── images ├── examples │ └── todos └── test └── vendor
Modernizr
Modernizr ├── feature-detects ├── media └── test ├── caniuse_files ├── js │ └── lib └── qunit
Raphaël
raphael ├── plugins └── test ├── image └── vendor
UglifyJS
UglifyJS ├── bin ├── lib ├── test │ └── unit │ └── compress │ ├── expected │ └── test └── tmp
psd.js
psd.js ├── deps ├── docs ├── lib ├── src └── test
pdf.js
pdf.js ├── examples │ ├── acroforms │ └── helloworld ├── extensions │ ├── chrome │ └── firefox │ └── components ├── external │ ├── jasmine │ ├── jasmineAdapter │ ├── jpgjs │ └── jsTestDriver ├── src │ └── utils ├── test │ ├── pdfs │ ├── resources │ │ ├── browser_manifests │ │ └── firefox │ │ └── extensions │ │ └── special-powers@mozilla.org │ │ ├── chrome │ │ │ └── specialpowers │ │ │ └── content │ │ └── components │ └── unit │ └── test_reports └── web └── images
three.js
three.js ├── build │ └── custom ├── doc │ └── api │ ├── cameras │ ├── core │ ├── extras │ │ └── core │ └── lights ├── examples │ ├── ctm │ │ └── camaro │ ├── fonts │ │ └── droid │ ├── js │ │ ├── ctm │ │ │ └── license │ │ └── postprocessing │ ├── models │ │ └── animated │ │ └── monster │ ├── obj │ │ ├── blenderscene │ │ ├── buffalo │ │ ├── camaro │ │ ├── cubecolors │ │ ├── f50 │ │ ├── female02 │ │ ├── gallardo │ │ │ └── parts │ │ ├── leeperrysmith │ │ ├── lucy │ │ ├── male02 │ │ ├── ninja │ │ ├── suzanne │ │ ├── veyron │ │ │ └── parts │ │ └── walt │ ├── scenes │ ├── sounds │ ├── textures │ │ ├── cube │ │ │ ├── Bridge2 │ │ │ ├── Escher │ │ │ ├── Park2 │ │ │ ├── Park3Med │ │ │ ├── SwedishRoyalCastle │ │ │ ├── pisa │ │ │ └── skybox │ │ ├── lava │ │ ├── lensflare │ │ ├── minecraft │ │ ├── normal │ │ │ └── ninja │ │ ├── patterns │ │ ├── planets │ │ ├── sprites │ │ └── terrain │ └── utf8 ├── gui │ ├── files │ └── js │ └── libs ├── src │ ├── cameras │ ├── core │ ├── extras │ │ ├── animation │ │ ├── cameras │ │ ├── controls │ │ ├── core │ │ ├── geometries │ │ ├── helpers │ │ ├── loaders │ │ ├── modifiers │ │ ├── objects │ │ ├── plugins │ │ ├── renderers │ │ └── shaders │ ├── lights │ ├── materials │ ├── objects │ ├── renderers │ │ └── renderables │ ├── scenes │ └── textures └── utils ├── compiler └── exporters ├── blender │ └── 2.60 │ └── scripts │ └── addons │ └── io_mesh_threejs ├── ctm ├── fbx │ └── modules │ └── win │ └── Python26_x86 ├── max ├── obj └── utf8
Knockout.js
knockout ├── build │ ├── fragments │ ├── output │ └── tools ├── spec │ └── lib │ └── qunit └── src ├── binding │ └── editDetection ├── subscribables └── templating ├── jquery.tmpl └── native
RequireJS
requirejs ├── dist │ └── fonts │ └── PT-Sans ├── docs │ └── design └── tests ├── anon │ └── sub ├── browsertests │ ├── appendbeforeload │ ├── async │ ├── docwritenested │ ├── noload │ ├── onerror │ ├── scriptload │ ├── scriptloadinteractive │ ├── scriptloadinteractiveattach │ └── vardefine ├── circular │ └── complexPlugin ├── commonjs │ └── tests │ └── modules │ └── 1.0 │ ├── absolute │ │ └── submodule │ ├── cyclic │ ├── determinism │ │ └── submodule │ ├── exactExports │ ├── hasOwnProperty │ ├── method │ ├── missing │ ├── monkeys │ ├── nested │ │ └── a │ │ └── b │ │ └── c │ ├── relative │ │ └── submodule │ └── transitive ├── defineError ├── doh │ └── _sounds ├── domReady ├── exports ├── i18n │ └── nls │ ├── en-us-surfer │ └── fr ├── jquery │ └── scripts ├── jsonp ├── layers ├── nestedDefine ├── order ├── packages │ ├── bar │ │ └── 0.4 │ │ └── scripts │ ├── baz │ │ └── lib │ ├── dojox │ │ └── window │ ├── foo │ │ └── lib │ ├── funky │ │ └── lib │ ├── optimizing │ │ └── packages │ │ ├── engine │ │ ├── fuel │ │ └── tires │ └── pkgs │ ├── alpha │ ├── beta │ │ └── 0.2 │ │ └── scripts │ └── dojox │ ├── chair │ └── table ├── paths │ ├── first.js │ └── impl ├── plugins │ ├── fromText │ ├── prime │ └── textDepend ├── priority │ └── priorityWithDeps │ ├── script │ │ ├── lib │ │ └── req │ │ └── utils │ └── style ├── relative │ ├── foo │ │ └── bar │ ├── greek │ └── outsideBaseUrl │ ├── a │ └── b ├── remoteUrls ├── text │ └── resources ├── uniques ├── universal ├── urlfetch ├── version1 └── version2
HeadJS
headjs ├── dist ├── src └── tests ├── manual-tests └── qunit
LABjs
LABjs └── tests
EaselJS
EaselJS ├── build │ ├── template │ │ └── assets │ └── tools │ ├── google-closure │ └── yuidoc │ ├── bin │ ├── ext │ └── template │ └── assets ├── docs ├── examples │ ├── game │ ├── img │ ├── modernizr │ └── styles ├── lib └── src └── easeljs ├── display ├── events ├── filters ├── geom ├── ui └── utils
History.js
history.js ├── demo ├── scripts │ ├── bundled │ │ ├── html4+html5 │ │ └── html5 │ ├── compressed │ └── uncompressed ├── tests ├── tests.src └── vendor └── qunit ├── qunit └── test
enchant.js
enchant.js ├── dev │ └── plugins ├── doc │ ├── en │ │ ├── javascript │ │ └── symbols │ ├── ja │ │ ├── css │ │ │ └── fonts │ │ ├── javascript │ │ └── symbols │ ├── javascript │ └── template │ ├── css │ │ └── fonts │ ├── javascript │ └── subtemplates ├── examples │ ├── action │ ├── gl │ │ ├── bounding │ │ ├── camera │ │ ├── collada │ │ ├── enchantjs │ │ ├── quaternion │ │ └── shape │ ├── rpg │ ├── shooting │ └── util ├── images ├── ja │ └── plugins ├── plugins │ └── libs └── tests
Paper.js
paper.js ├── build │ └── jsdoc-toolkit ├── dist │ └── docs │ ├── classes │ └── resources │ ├── css │ │ └── assets │ └── js ├── examples │ ├── Animated │ ├── Games │ ├── Node.js │ ├── Rasters │ ├── Scripts │ ├── Tools │ └── css ├── lib ├── node.js ├── src │ ├── basic │ ├── browser │ ├── color │ ├── core │ ├── docs │ ├── item │ ├── path │ ├── project │ ├── style │ ├── text │ ├── tool │ ├── ui │ └── util └── test ├── lib │ └── qunit └── tests
Zepto.js
zepto ├── examples │ ├── iphone │ └── snow ├── spec │ └── javascripts │ ├── helpers │ └── support ├── src ├── test │ └── fixtures └── vendor ├── google-compiler └── yuicompressor
SeaJS
seajs ├── build ├── docs │ ├── assets │ ├── demo │ │ ├── calculator │ │ │ └── online │ │ ├── coffee-and-less │ │ ├── hello-seajs │ │ ├── spinning-icons │ │ └── todos │ └── zh-cn ├── lib ├── src │ └── plugins ├── support └── test ├── bootstrap ├── issues │ ├── anonymous │ ├── anywhere │ ├── combo-use │ ├── config-base │ │ └── js │ │ ├── biz │ │ │ └── sub │ │ └── xxlib │ │ └── 1.0.0 │ ├── config-conflict │ ├── data-main │ ├── debug │ ├── duplicate-load │ ├── ie-cache │ ├── inline-module │ ├── jsonp │ ├── load-css │ ├── load-deps │ ├── local-files │ ├── map │ │ ├── build │ │ └── libs │ │ └── build │ ├── module-extend │ ├── multi-map │ ├── multi-use │ ├── multi-versions │ ├── no-conflict │ ├── onload │ ├── parse-deps │ ├── plugin-coffee │ ├── plugin-json │ ├── plugin-less │ ├── plugin-map │ ├── plugin-text │ ├── preload │ ├── preload-ie │ ├── remove-comments │ ├── require-extend │ ├── seajs-map │ │ └── sub │ ├── timestamp │ └── un-correspondence ├── modules │ ├── alias │ │ └── submodule │ │ └── sub │ ├── checkPotentialErrors │ ├── configMap │ │ └── sub │ ├── cyclic │ ├── define │ ├── determinism │ │ └── submodule │ ├── exactExports │ ├── exports │ ├── extend │ ├── hasOwnProperty │ ├── load │ ├── math │ ├── metadata │ ├── method │ ├── missing │ ├── monkeys │ ├── nested │ │ └── a │ │ └── b │ │ └── c │ ├── preload │ ├── relative │ │ └── submodule │ ├── simplest │ ├── transitive │ └── version ├── packages │ ├── base │ └── math ├── research │ ├── load-js-css │ ├── onload-order │ │ └── result │ ├── reliability │ │ └── result │ └── style-order └── unit
CamanJS
CamanJS ├── adapters ├── dist ├── docs ├── examples │ ├── browser │ ├── images │ └── node ├── proxies ├── src │ ├── core │ ├── lib │ └── plugins └── test ├── benchmark │ └── flot └── qunit
CasperJS
casperjs ├── bin ├── docs ├── modules │ └── vendors ├── samples └── tests ├── site │ └── images └── suites └── casper
Spine
spine ├── lib ├── src └── test ├── lib └── specs
JavaScriptMVC
javascriptmvc ├── documentjs ├── funcit ├── funcunit ├── jmvc │ ├── docs │ ├── fonts │ ├── images │ │ ├── backgrounds │ │ │ └── download │ │ └── team │ ├── pages │ ├── scripts │ ├── site │ │ ├── scripts │ │ └── views │ └── stylesheets ├── jquery ├── mxui ├── scripts ├── steal ├── test │ └── scripts └── tutorials ├── ajaxy │ └── fixtures ├── examples │ └── contacts ├── getstarted ├── images ├── mvc └── rapidstart
AngularJS
angular.js ├── css ├── docs │ ├── content │ │ ├── api │ │ ├── cookbook │ │ ├── guide │ │ └── misc │ ├── examples │ │ └── ng-include │ ├── img │ │ ├── guide │ │ └── tutorial │ ├── spec │ └── src │ └── templates │ └── syntaxhighlighter ├── example │ ├── buzz │ ├── personalLog │ │ ├── scenario │ │ └── test │ └── tweeter ├── i18n │ ├── closure │ ├── e2e │ ├── locale │ ├── spec │ └── src ├── images │ ├── css │ ├── docs │ │ ├── guide │ │ │ ├── about_view.graffle │ │ │ │ └── QuickLook │ │ │ └── simple_scope.graffle │ │ │ └── QuickLook │ │ └── tutorial │ │ ├── simple_scope.graffle │ │ │ └── QuickLook │ │ ├── tutorial_02.graffle │ │ │ └── QuickLook │ │ ├── tutorial_03.graffle │ │ │ └── QuickLook │ │ ├── tutorial_04-06.graffle │ │ │ └── QuickLook │ │ ├── tutorial_04.graffle │ │ │ └── QuickLook │ │ ├── tutorial_07.graffle │ │ │ └── QuickLook │ │ ├── tutorial_08-09.graffle │ │ │ └── QuickLook │ │ ├── tutorial_10-11.graffle │ │ │ └── QuickLook │ │ └── tutorial_proto.graffle │ │ └── QuickLook │ └── logo │ └── Angular.graffle │ └── QuickLook ├── lib │ ├── closure-compiler │ ├── htmlparser │ ├── jasmine │ ├── jasmine-jstd-adapter │ ├── jquery │ ├── jsl │ ├── jstestdriver │ ├── nodeserver │ └── showdown ├── logs ├── perf │ └── data ├── regression ├── src │ ├── jstd-scenario-adapter │ ├── scenario │ │ └── output │ ├── service │ │ └── filter │ └── widget ├── test │ ├── jstd-scenario-adapter │ ├── scenario │ │ ├── e2e │ │ └── output │ ├── service │ │ └── filter │ └── widget └── tmp
Benchmark.js
benchmark.js ├── doc ├── example │ └── jsperf ├── plugin ├── test │ └── benchmark.air │ ├── bin-debug │ └── src └── vendor ├── docdown ├── platform.js ├── qunit ├── qunit-clib └── requirejs
Qwery
qwery ├── config ├── integration ├── mobile │ └── src ├── pseudos │ └── src ├── src ├── tests └── vendor
Augment.js
augment.js ├── lib └── test └── env
html2canvas
html2canvas ├── build ├── external ├── src │ └── plugins └── tests
Davis.js
davis.js ├── docs ├── examples ├── lib │ ├── extensions │ └── plugins ├── src │ ├── extensions │ └── plugins └── tests ├── javascripts └── stylesheets
Moment.js
moment ├── lang ├── min │ └── lang └── test ├── lang └── non-lang
tween.js
tween.js ├── build ├── examples │ ├── css │ ├── js │ └── video ├── src └── utils
URI.js
URI.js ├── prettify ├── src └── test └── qunit