mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Marko v3: Restored hot reload
This commit is contained in:
parent
acb4d30886
commit
f00d17bc20
@ -127,6 +127,12 @@ function getLastModified(path, options, callback) {
|
|||||||
callback(null, -1); // TODO Implement getLastModified
|
callback(null, -1); // TODO Implement getLastModified
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clearCaches() {
|
||||||
|
exports.taglibLookup.clearCache();
|
||||||
|
exports.taglibFinder.clearCache();
|
||||||
|
exports.taglibLoader.clearCache();
|
||||||
|
}
|
||||||
|
|
||||||
exports.createBuilder = createBuilder;
|
exports.createBuilder = createBuilder;
|
||||||
exports.compileFile = compileFile;
|
exports.compileFile = compileFile;
|
||||||
exports.compile = compile;
|
exports.compile = compile;
|
||||||
@ -136,10 +142,12 @@ exports.getLastModified = getLastModified;
|
|||||||
exports.createWalker = createWalker;
|
exports.createWalker = createWalker;
|
||||||
exports.builder = Builder.DEFAULT_BUILDER;
|
exports.builder = Builder.DEFAULT_BUILDER;
|
||||||
exports.configure = configure;
|
exports.configure = configure;
|
||||||
|
exports.clearCaches = clearCaches;
|
||||||
|
|
||||||
var taglibLookup = require('./taglib-lookup');
|
var taglibLookup = require('./taglib-lookup');
|
||||||
exports.taglibLookup = taglibLookup;
|
exports.taglibLookup = taglibLookup;
|
||||||
exports.taglibLoader = require('./taglib-loader');
|
exports.taglibLoader = require('./taglib-loader');
|
||||||
|
exports.taglibFinder = require('./taglib-finder');
|
||||||
|
|
||||||
taglibLookup.registerTaglib(require.resolve('../taglibs/core/marko.json'));
|
taglibLookup.registerTaglib(require.resolve('../taglibs/core/marko.json'));
|
||||||
taglibLookup.registerTaglib(require.resolve('../taglibs/layout/marko.json'));
|
taglibLookup.registerTaglib(require.resolve('../taglibs/layout/marko.json'));
|
||||||
|
|||||||
@ -140,11 +140,11 @@ function find(dirname, registeredTaglibs) {
|
|||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
function clearCaches() {
|
function clearCache() {
|
||||||
existsCache = {};
|
existsCache = {};
|
||||||
findCache = {};
|
findCache = {};
|
||||||
taglibsForNodeModulesDirCache = {};
|
taglibsForNodeModulesDirCache = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.find = find;
|
exports.find = find;
|
||||||
exports.clearCaches = clearCaches;
|
exports.clearCache = clearCache;
|
||||||
|
|||||||
@ -35,4 +35,8 @@ function load(path) {
|
|||||||
return taglib;
|
return taglib;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.clearCache = function() {
|
||||||
|
cache = {};
|
||||||
|
};
|
||||||
|
|
||||||
exports.load = load;
|
exports.load = load;
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
exports.registerTaglib = registerTaglib;
|
exports.registerTaglib = registerTaglib;
|
||||||
exports.buildLookup = buildLookup;
|
exports.buildLookup = buildLookup;
|
||||||
exports.clearCaches = clearCaches;
|
exports.clearCache = clearCache;
|
||||||
|
|
||||||
var taglibLoader = require('../taglib-loader');
|
var taglibLoader = require('../taglib-loader');
|
||||||
var taglibFinder = require('../taglib-finder');
|
var taglibFinder = require('../taglib-finder');
|
||||||
@ -75,6 +75,6 @@ function registerTaglib(taglib) {
|
|||||||
exports.registeredTaglibs.push(taglib);
|
exports.registeredTaglibs.push(taglib);
|
||||||
}
|
}
|
||||||
|
|
||||||
function clearCaches() {
|
function clearCache() {
|
||||||
lookupCache = {};
|
lookupCache = {};
|
||||||
}
|
}
|
||||||
1
test/fixtures/hot-reload/hot-reload.marko
vendored
Normal file
1
test/fixtures/hot-reload/hot-reload.marko
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
- Hello ${data.name}!
|
||||||
@ -8,7 +8,7 @@ var fs = require('fs');
|
|||||||
|
|
||||||
require('../node-require').install();
|
require('../node-require').install();
|
||||||
|
|
||||||
xdescribe('hot-reload' , function() {
|
describe('hot-reload' , function() {
|
||||||
before(function() {
|
before(function() {
|
||||||
require('../hot-reload').enable();
|
require('../hot-reload').enable();
|
||||||
require('../compiler').defaultOptions.checkUpToDate = false;
|
require('../compiler').defaultOptions.checkUpToDate = false;
|
||||||
@ -17,7 +17,7 @@ xdescribe('hot-reload' , function() {
|
|||||||
it('should allow a required template to be hot reloaded', function() {
|
it('should allow a required template to be hot reloaded', function() {
|
||||||
|
|
||||||
|
|
||||||
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/templates/api-tests/hello.marko');
|
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/hot-reload/hot-reload.marko');
|
||||||
var templateSrc = fs.readFileSync(srcTemplatePath, { encoding: 'utf8' });
|
var templateSrc = fs.readFileSync(srcTemplatePath, { encoding: 'utf8' });
|
||||||
|
|
||||||
var tempTemplatePath = nodePath.join(__dirname, 'temp/hello.marko');
|
var tempTemplatePath = nodePath.join(__dirname, 'temp/hello.marko');
|
||||||
@ -39,7 +39,7 @@ xdescribe('hot-reload' , function() {
|
|||||||
it('should allow a non-required template to be hot reloaded', function() {
|
it('should allow a non-required template to be hot reloaded', function() {
|
||||||
|
|
||||||
|
|
||||||
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/templates/api-tests/hello.marko');
|
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/hot-reload/hot-reload.marko');
|
||||||
var templateSrc = fs.readFileSync(srcTemplatePath, { encoding: 'utf8' });
|
var templateSrc = fs.readFileSync(srcTemplatePath, { encoding: 'utf8' });
|
||||||
|
|
||||||
var tempTemplatePath = nodePath.join(__dirname, 'temp/hello2.marko');
|
var tempTemplatePath = nodePath.join(__dirname, 'temp/hello2.marko');
|
||||||
|
|||||||
14
test/temp/hello.marko.js
Normal file
14
test/temp/hello.marko.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
function create(__helpers) {
|
||||||
|
var str = __helpers.s,
|
||||||
|
empty = __helpers.e,
|
||||||
|
notEmpty = __helpers.ne,
|
||||||
|
escapeXml = __helpers.x;
|
||||||
|
|
||||||
|
return function render(data, out) {
|
||||||
|
out.w("Hello " +
|
||||||
|
escapeXml(data.name) +
|
||||||
|
"!!");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
(module.exports = require("marko").c(__filename)).c(create);
|
||||||
14
test/temp/hello2.marko.js
Normal file
14
test/temp/hello2.marko.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
function create(__helpers) {
|
||||||
|
var str = __helpers.s,
|
||||||
|
empty = __helpers.e,
|
||||||
|
notEmpty = __helpers.ne,
|
||||||
|
escapeXml = __helpers.x;
|
||||||
|
|
||||||
|
return function render(data, out) {
|
||||||
|
out.w("Hello " +
|
||||||
|
escapeXml(data.name) +
|
||||||
|
"!!");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
(module.exports = require("marko").c(__filename)).c(create);
|
||||||
Loading…
x
Reference in New Issue
Block a user