UNPKG

@aiot-toolkit/packager

Version:

@aiot-toolkit/packager

3 lines (2 loc) 3.91 kB
"use strict";var _Compilation=_interopRequireDefault(require("webpack/lib/Compilation")),_webpackSources=require("webpack-sources"),_compilationConfig=require("@aiot-toolkit/shared-utils/compilation-config"),_info=require("../common/info");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function HandlerPlugin(e){this.options=e}function wrapExportFunction(...e){return new _webpackSources.ConcatSource("export default function(global, globalThis, window, $app_exports$, $app_evaluate$){"," var org_app_require = $app_require$;","(",...e,")","(global, globalThis, window, $app_exports$, $app_evaluate$)","}")}function wrapCode(e,n,o,a){if(/\.js$/.test(e)){if(-1!==a.indexOf(e)){const a=0===e.indexOf("services/");return e.match(/\bapp\.js$/)||a?_compilationConfig.compileOptionsObject.enableMirtos?wrapExportFunction(`function(global, globalThis, window, $app_exports$, $app_evaluate$){\n var setTimeout = global.setTimeout;\n var setInterval = global.setInterval;\n var clearTimeout = global.clearTimeout;\n var clearInterval = global.clearInterval;\n var $app_require$ = global.$app_require$ || org_app_require\n ${o?'globalThis = undefined; \n global = typeof window === "undefined" ? global.__proto__ : window ;':""}\n var $app_define_wrap$ = $app_define_wrap$ || function() {}\n var createAppHandler = function() {\n return `,n.assets[e],"\n };\n return createAppHandler();\n}"):new _webpackSources.ConcatSource(`(function(){\n ${o?'global = typeof window === "undefined" ? global.__proto__ : window ;':""}\nvar $app_define_wrap$ = $app_define_wrap$ || function() {}\nvar manifestJson = ${JSON.stringify(global.framework.manifest)}\nvar createAppHandler = function() {\n return `,n.assets[e],'\n };\n\n if (typeof window === "undefined") {\n return createAppHandler();\n }\n else {\n window.createAppHandler = createAppHandler\n // H5注入manifest以获取features\n global.manifest = manifestJson;\n }\n})();'):_compilationConfig.compileOptionsObject.enableMirtos?wrapExportFunction(`function(global, globalThis, window, $app_exports$, $app_evaluate$){\n var setTimeout = global.setTimeout;\n var setInterval = global.setInterval;\n var clearTimeout = global.clearTimeout;\n var clearInterval = global.clearInterval;\n var $app_require$ = global.$app_require$ || org_app_require\n ${o?'globalThis = undefined; \n global = typeof window === "undefined" ? global.__proto__ : window ;':""}\n var createPageHandler = function() {\n return `,n.assets[e],"\n };\n return createPageHandler();\n }"):new _webpackSources.ConcatSource(`(function(){\n ${o?'global = typeof window === "undefined" ? global.__proto__ : window ;':""}\n var createPageHandler = function() {\n return `,n.assets[e],'\n };\n if (typeof window === "undefined") {\n return createPageHandler();\n }\n else {\n window.createPageHandler = createPageHandler\n }\n })();')}if(_compilationConfig.compileOptionsObject.splitChunksMode===_compilationConfig.compileOptionsMeta.splitChunksModeEnum.SMART)return new _webpackSources.ConcatSource(n.assets[e]);n.errors.push(new Error("### App Loader ### Used dynamic import js, please add `--split-chunks-mode=smart` command to compile"))}}HandlerPlugin.prototype.apply=function(e){const n=this.options.workers,o=this.options.enableE2e;e.hooks.compilation.tap("HandlerPlugin",(function(a){a.hooks.processAssets.tap({name:"HandlerPlugin",stage:_Compilation.default.PROCESS_ASSETS_STAGE_OPTIMIZE},(()=>{const r=(0,_info.getEntryFiles)(e.options.entry);a.chunks.forEach((function(e){e.files.forEach((function(e){if(e.startsWith(n))return;const t=wrapCode(e,a,o,r);t&&(a.assets[e]=t)}))}))}))}))},module.exports=HandlerPlugin; //# sourceMappingURL=handler-plugin.js.map