UNPKG

@srejs/vue-webpack

Version:

srejs vue技术栈webpack配置工具包

84 lines (83 loc) 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EntryList = exports.EntryFilesMap = void 0; exports.getEntry = getEntry; exports.getEntryList = getEntryList; exports.initEntry = initEntry; exports.webpackEntryMap = exports.webpackEntry = void 0; var _path = require("path"); var _fs = require("fs"); var _common = require("@srejs/common"); var EntryFilesMap = exports.EntryFilesMap = new Map(); var EntryList = exports.EntryList = new Set([]); var webpackEntry = exports.webpackEntry = {}; var webpackEntryMap = exports.webpackEntryMap = new Map(); var entryDir = (0, _common.getEntryDir)(); function getEntry(page) { if (page == true || page == 0 || typeof page == 'boolean') { return webpackEntry; } else { //一次打包多个入口文件以逗号分隔 var pageArray = page.split(',') || []; var entry = {}; pageArray.forEach(function (pageName) { entry["".concat(pageName, "/").concat(pageName)] = webpackEntryMap.get(pageName); }); return entry; } } function createEntry(page) { try { var rootDir = (0, _common.getOptions)('rootDir'); var rootNode = (0, _common.getOptions)('rootNode'); var data = _fs.readFileSync(_path.join(__dirname, './', 'vue.entry.tpl'), 'utf8'); var entryName = false; var entrysFileList = ['index.js', 'index.ts', 'index.tsx', "".concat(page, ".js"), "".concat(page, ".ts"), "".concat(page, ".tsx")]; var exists = entrysFileList.some(function (file) { var entryjs = _path.join(entryDir, "".concat(page, "/").concat(file)); if (_fs.existsSync(entryjs)) { entryName = file; EntryFilesMap.set(page, entryjs); return true; // 存在任意一个返回true } }); if (exists && entryName) { data = data.replace('$injectApp$', "../".concat(rootDir, "/pages/").concat(page, "/").concat(entryName)); data = data.replace('$rootNode$', rootNode); var _exists = _fs.existsSync(_common.tempDir); if (!_exists) { _fs.mkdirSync(_common.tempDir); } // if (!fs.existsSync(`${tempDir}/${page}.js`)) { // fs.writeFileSync(`${tempDir}/${page}.js`, data); // } _fs.writeFileSync("".concat(_common.tempDir, "/").concat(page, ".js"), data); return true; } else { return false; } } catch (err) { console.error("".concat(page, " Entry file creation failed in .ssr"), err); return false; } } function initEntry() { if (EntryList.size > 0) { return; } _fs.readdirSync(entryDir).forEach(function (page) { if (page != 'index.html' && page != '.DS_Store' && createEntry(page)) { webpackEntry["".concat(page, "/").concat(page)] = "".concat(_common.tempDir, "/").concat(page); webpackEntryMap.set(page, "".concat(_common.tempDir, "/").concat(page)); EntryList.add(page); } }); } function getEntryList() { if (EntryList.size == 0) { initEntry(); } return EntryList; }