UNPKG

@uiw-admin/plugins

Version:
94 lines (92 loc) 3.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _fs = _interopRequireDefault(require("fs")); var _path = _interopRequireDefault(require("path")); var _temp = require("./temp"); var _chokidar = _interopRequireDefault(require("chokidar")); /** * 对项目入口文件进行自动生成 * */ var InitIndexWebpackPlugin = /*#__PURE__*/function () { function InitIndexWebpackPlugin(props) { (0, _classCallCheck2["default"])(this, InitIndexWebpackPlugin); (0, _defineProperty2["default"])(this, "globalCss", false); (0, _defineProperty2["default"])(this, "swr", false); (0, _defineProperty2["default"])(this, "SWRConfig", undefined); (0, _defineProperty2["default"])(this, "routeType", undefined); if (Reflect.has(props || {}, 'swr')) { if (typeof Reflect.get(props || {}, 'swr') === 'boolean') { this.swr = props === null || props === void 0 ? void 0 : props.swr; } else if ((0, _typeof2["default"])(Reflect.get(props || {}, 'swr')) === 'object') { this.swr = true; this.SWRConfig = props === null || props === void 0 ? void 0 : props.swr; } } if (Reflect.has(props || {}, 'routeType')) { this.routeType = props === null || props === void 0 ? void 0 : props.routeType; } } (0, _createClass2["default"])(InitIndexWebpackPlugin, [{ key: "init", value: function init() { if (_fs["default"].existsSync(_path["default"].resolve(process.cwd(), 'src/global.css'))) { this.globalCss = true; } else { this.globalCss = false; } var initIndexs = (0, _temp.getInitIndexTemp)({ swr: this.swr, SWRConfig: this.SWRConfig, routeType: this.routeType, globalCss: this.globalCss }); if (!_fs["default"].existsSync(_path["default"].resolve(process.cwd(), 'src/.uiw'))) { _fs["default"].mkdirSync(_path["default"].resolve(process.cwd(), 'src/.uiw')); } _fs["default"].writeFileSync(_path["default"].resolve(process.cwd(), 'src/.uiw/index.tsx'), initIndexs, { encoding: 'utf-8', flag: 'w+' }); _fs["default"].writeFileSync(_path["default"].resolve(process.cwd(), 'src/.uiw/index.css'), (0, _temp.getInitCssTemp)(), { encoding: 'utf-8', flag: 'w+' }); } }, { key: "apply", value: function apply(compiler) { var _this = this; compiler.hooks.initialize.tap('InitIndexWebpackPlugin', function () { _this.init(); _this.listenGlobalCss(); }); } // 监听 global.css 文件是否删除或添加 }, { key: "listenGlobalCss", value: function listenGlobalCss() { var _this2 = this; if (process.env.NODE_ENV === 'development') { _chokidar["default"].watch(_path["default"].resolve(process.cwd(), 'src/global.css'), { cwd: _path["default"].resolve(process.cwd(), 'src') }).on('all', function (event, path) { if (['add', 'unlink'].includes(event) && /global.css/.test(path)) { _this2.init(); } }); } } }]); return InitIndexWebpackPlugin; }(); var _default = InitIndexWebpackPlugin; exports["default"] = _default; module.exports = exports.default;