create-uniapp-pages-json
Version:
Dynamic generation of uniapp pages.json
41 lines (40 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
/*
* @Author: shen
* @Date: 2020-12-23 15:01:26
* @LastEditors: shen
* @LastEditTime: 2020-12-25 08:50:44
* @Description:
*/
var path_1 = tslib_1.__importDefault(require("path"));
var getConfig_1 = tslib_1.__importDefault(require("../libs/getConfig"));
var getRoutesPath_1 = tslib_1.__importDefault(require("../libs/getRoutesPath"));
var getRoutesConfig_1 = tslib_1.__importDefault(require("../libs/getRoutesConfig"));
var generatePagesJson_1 = tslib_1.__importDefault(require("../libs/generatePagesJson"));
var config = getConfig_1.default();
var defaultConfigPath = path_1.default.resolve(config.defaultConfigFile);
var WatchUniAppRoutesPlugin = /** @class */ (function () {
function WatchUniAppRoutesPlugin() {
}
WatchUniAppRoutesPlugin.prototype.apply = function (compiler) {
compiler.hooks.afterCompile.tap('WatchUniAppRoutesPlugin', function (compilation) {
compilation.fileDependencies.add(defaultConfigPath);
});
compiler.hooks.watchRun.tapAsync('WatchUniAppRoutesPlugin', function (compiler, cb) {
var changedFiles = Object.keys(compiler.watchFileSystem.watcher.mtimes);
if (changedFiles.length) {
var routesPath = getRoutesPath_1.default(config);
var isChange = routesPath.some(function (item) { return changedFiles.includes(item); });
if (isChange || changedFiles.includes(defaultConfigPath)) {
var routesConfig = getRoutesConfig_1.default(routesPath);
generatePagesJson_1.default(config.rootPath, config.defaultConfigFile, routesConfig);
}
}
cb();
});
};
return WatchUniAppRoutesPlugin;
}());
module.exports = WatchUniAppRoutesPlugin;