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
|
||||
}
|
||||
|
||||
function clearCaches() {
|
||||
exports.taglibLookup.clearCache();
|
||||
exports.taglibFinder.clearCache();
|
||||
exports.taglibLoader.clearCache();
|
||||
}
|
||||
|
||||
exports.createBuilder = createBuilder;
|
||||
exports.compileFile = compileFile;
|
||||
exports.compile = compile;
|
||||
@ -136,10 +142,12 @@ exports.getLastModified = getLastModified;
|
||||
exports.createWalker = createWalker;
|
||||
exports.builder = Builder.DEFAULT_BUILDER;
|
||||
exports.configure = configure;
|
||||
exports.clearCaches = clearCaches;
|
||||
|
||||
var taglibLookup = require('./taglib-lookup');
|
||||
exports.taglibLookup = taglibLookup;
|
||||
exports.taglibLoader = require('./taglib-loader');
|
||||
exports.taglibFinder = require('./taglib-finder');
|
||||
|
||||
taglibLookup.registerTaglib(require.resolve('../taglibs/core/marko.json'));
|
||||
taglibLookup.registerTaglib(require.resolve('../taglibs/layout/marko.json'));
|
||||
|
||||
@ -140,11 +140,11 @@ function find(dirname, registeredTaglibs) {
|
||||
return found;
|
||||
}
|
||||
|
||||
function clearCaches() {
|
||||
function clearCache() {
|
||||
existsCache = {};
|
||||
findCache = {};
|
||||
taglibsForNodeModulesDirCache = {};
|
||||
}
|
||||
|
||||
exports.find = find;
|
||||
exports.clearCaches = clearCaches;
|
||||
exports.clearCache = clearCache;
|
||||
|
||||
@ -35,4 +35,8 @@ function load(path) {
|
||||
return taglib;
|
||||
}
|
||||
|
||||
exports.clearCache = function() {
|
||||
cache = {};
|
||||
};
|
||||
|
||||
exports.load = load;
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
'use strict';
|
||||
exports.registerTaglib = registerTaglib;
|
||||
exports.buildLookup = buildLookup;
|
||||
exports.clearCaches = clearCaches;
|
||||
exports.clearCache = clearCache;
|
||||
|
||||
var taglibLoader = require('../taglib-loader');
|
||||
var taglibFinder = require('../taglib-finder');
|
||||
@ -75,6 +75,6 @@ function registerTaglib(taglib) {
|
||||
exports.registeredTaglibs.push(taglib);
|
||||
}
|
||||
|
||||
function clearCaches() {
|
||||
function clearCache() {
|
||||
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();
|
||||
|
||||
xdescribe('hot-reload' , function() {
|
||||
describe('hot-reload' , function() {
|
||||
before(function() {
|
||||
require('../hot-reload').enable();
|
||||
require('../compiler').defaultOptions.checkUpToDate = false;
|
||||
@ -17,7 +17,7 @@ xdescribe('hot-reload' , 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 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() {
|
||||
|
||||
|
||||
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 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