Add autodiscover of components/ directory. fixes #329

This commit is contained in:
Michael Rawlings 2016-07-18 14:07:44 -07:00 committed by Patrick Steele-Idem
parent 213e652418
commit 8099959355
7 changed files with 22 additions and 3 deletions

View File

@ -20,6 +20,9 @@ var nodePath = require('path');
var fs = require('fs');
var lassoPackageRoot = require('lasso-package-root');
var resolveFrom = require('resolve-from');
var scanTagsDir = require('../taglib-loader/scanTagsDir');
var Taglib = require('../taglib-loader/Taglib');
var DependencyChain = require('../taglib-loader/DependencyChain');
var existsCache = {};
var findCache = {};
@ -112,13 +115,20 @@ function find(dirname, registeredTaglibs) {
}
// First walk up the directory tree looking for marko.json files
// First walk up the directory tree looking for marko.json files or components/ directories
let curDirname = dirname;
while(true) {
let taglibPath = nodePath.join(curDirname, 'marko.json');
if (existsCached(taglibPath) && !excludedDirs[curDirname]) {
var taglib = taglibLoader.load(taglibPath);
let taglib = taglibLoader.load(taglibPath);
helper.addTaglib(taglib);
} else {
let componentPath = nodePath.join(curDirname, 'components');
if (existsCached(componentPath) && !excludedDirs[curDirname] && !helper.alreadyAdded(componentPath)) {
let taglib = new Taglib(componentPath);
scanTagsDir(componentPath, nodePath.dirname(componentPath), './components', taglib, new DependencyChain([componentPath]));
helper.addTaglib(taglib);
}
}
if (curDirname === rootDirname) {
@ -175,4 +185,4 @@ exports.reset = reset;
exports.find = find;
exports.clearCache = clearCache;
exports.excludeDir = excludeDir;
exports.excludePackage = excludePackage;
exports.excludePackage = excludePackage;

View File

@ -0,0 +1 @@
<div>test-hello</div>

View File

@ -0,0 +1 @@
<div>test-hello</div><test-home></test-home><div>HOME</div><div>test-home</div>

View File

@ -0,0 +1,2 @@
<div>HOME</div>
<test-home/>

View File

@ -0,0 +1,3 @@
<test-hello/>
<test-home/>
<include("./pages/home/template.marko")></include>

View File

@ -0,0 +1 @@
exports.templateData = {};