mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Add autodiscover of components/ directory. fixes #329
This commit is contained in:
parent
213e652418
commit
8099959355
@ -20,6 +20,9 @@ var nodePath = require('path');
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var lassoPackageRoot = require('lasso-package-root');
|
var lassoPackageRoot = require('lasso-package-root');
|
||||||
var resolveFrom = require('resolve-from');
|
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 existsCache = {};
|
||||||
var findCache = {};
|
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;
|
let curDirname = dirname;
|
||||||
while(true) {
|
while(true) {
|
||||||
let taglibPath = nodePath.join(curDirname, 'marko.json');
|
let taglibPath = nodePath.join(curDirname, 'marko.json');
|
||||||
if (existsCached(taglibPath) && !excludedDirs[curDirname]) {
|
if (existsCached(taglibPath) && !excludedDirs[curDirname]) {
|
||||||
var taglib = taglibLoader.load(taglibPath);
|
let taglib = taglibLoader.load(taglibPath);
|
||||||
helper.addTaglib(taglib);
|
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) {
|
if (curDirname === rootDirname) {
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
<div>test-hello</div>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<div>test-hello</div><test-home></test-home><div>HOME</div><div>test-home</div>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<div>test-home</div>
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
<div>HOME</div>
|
||||||
|
<test-home/>
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
<test-hello/>
|
||||||
|
<test-home/>
|
||||||
|
<include("./pages/home/template.marko")></include>
|
||||||
1
test/autotests/render/custom-tag-autodiscover/test.js
Normal file
1
test/autotests/render/custom-tag-autodiscover/test.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
exports.templateData = {};
|
||||||
Loading…
x
Reference in New Issue
Block a user