52 lines
2.4 KiB
JavaScript
52 lines
2.4 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.uniPagesJsonPlugin = void 0;
|
|
const path_1 = __importDefault(require("path"));
|
|
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
|
|
const esbuild_1 = require("../../nvue/plugins/esbuild");
|
|
function uniPagesJsonPlugin() {
|
|
return (0, uni_cli_shared_1.defineUniPagesJsonPlugin)((opts) => {
|
|
return {
|
|
name: 'uni:app-vue-pages-json',
|
|
enforce: 'pre',
|
|
transform(code, id) {
|
|
if (!opts.filter(id)) {
|
|
return;
|
|
}
|
|
this.addWatchFile(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'pages.json'));
|
|
(0, uni_cli_shared_1.getLocaleFiles)(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'locale')).forEach((filepath) => {
|
|
this.addWatchFile(filepath);
|
|
});
|
|
const pagesJson = (0, uni_cli_shared_1.normalizePagesJson)(code, process.env.UNI_PLATFORM);
|
|
pagesJson.pages.forEach((page) => {
|
|
if (!page.style.isNVue) {
|
|
this.addWatchFile(path_1.default.resolve(process.env.UNI_INPUT_DIR, page.path + '.vue'));
|
|
}
|
|
});
|
|
this.emitFile({
|
|
fileName: uni_cli_shared_1.APP_CONFIG_SERVICE,
|
|
type: 'asset',
|
|
source: (0, uni_cli_shared_1.normalizeAppConfigService)(pagesJson, (0, uni_cli_shared_1.parseManifestJsonOnce)(process.env.UNI_INPUT_DIR)),
|
|
});
|
|
return {
|
|
code: `import './${uni_cli_shared_1.MANIFEST_JSON_JS}'\n` +
|
|
(0, uni_cli_shared_1.normalizeAppPagesJson)(pagesJson),
|
|
map: { mappings: '' },
|
|
};
|
|
},
|
|
generateBundle(_, bundle) {
|
|
const outputFile = bundle[uni_cli_shared_1.APP_CONFIG_SERVICE];
|
|
if (outputFile && outputFile.type === 'asset') {
|
|
// 补充 nvue styles
|
|
;
|
|
outputFile.source = (0, esbuild_1.wrapperNVueAppStyles)(outputFile.source);
|
|
}
|
|
},
|
|
};
|
|
});
|
|
}
|
|
exports.uniPagesJsonPlugin = uniPagesJsonPlugin;
|