Wymaganie na żądanie ()
Powiedz, że tworzę bibliotekę w./libname
który zawiera jeden główny plik:main.js
i wiele opcjonalnych plików bibliotek, które czasami są używane z głównym obiektem:a.js
ib.js
.
tworzęindex.js
plik z następującymi elementami:
exports.MainClass = require('main.js').MainClass; // shortcut
exports.a = require('a');
exports.b = require('b');
Teraz mogę korzystać z biblioteki w następujący sposób:
var lib = require('./libname');
lib.MainClass;
lib.a.Something; // Here I need the optional utility object
lib.b.SomeOtherThing;
Oznacza to jednak, że zawsze ładuję 'a.js' i 'b.js', a kiedy ich naprawdę potrzebuję.
Oczywiście mogę ręcznie załadować opcjonalne moduły za pomocąrequire('./libname/a.js')
, ale potem tracę pięknośćlib.a
notacja kropkowa :)
Czy istnieje sposób na zaimplementowanie ładowania na żądanie za pomocą jakiegoś pliku indeksu? Może trochępackage.json
magia może tu dobrze grać?