subpackage.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.createNonAppGenerateBundle = exports.uniSubpackagePlugin = void 0;
  4. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  5. function uniSubpackagePlugin({ style: { extname }, }) {
  6. return {
  7. name: 'uni:mp-subpackage',
  8. enforce: 'post',
  9. generateBundle: createNonAppGenerateBundle(extname),
  10. };
  11. }
  12. exports.uniSubpackagePlugin = uniSubpackagePlugin;
  13. function createNonAppGenerateBundle(extname) {
  14. return function generateBundle(_, bundle) {
  15. ;
  16. ['project.config.json', 'app.json'].forEach((name) => {
  17. delete bundle[name];
  18. });
  19. const appJsFile = 'app.js';
  20. const appCssFile = 'app' + extname;
  21. Object.keys(bundle).forEach((name) => {
  22. if (!(0, uni_cli_shared_1.isMiniProgramPageFile)(name)) {
  23. return;
  24. }
  25. // 仅页面级 wxss 需要补充 app.wxss
  26. if (name.endsWith(extname)) {
  27. const cssFile = bundle[name];
  28. cssFile.source =
  29. `@import "${(0, uni_cli_shared_1.relativeFile)(name, appCssFile)}";\n` +
  30. cssFile.source.toString();
  31. }
  32. else if (name.endsWith('.js')) {
  33. const jsFile = bundle[name];
  34. jsFile.code =
  35. `require('${(0, uni_cli_shared_1.relativeFile)(name, appJsFile)}');\n` + jsFile.code;
  36. }
  37. });
  38. };
  39. }
  40. exports.createNonAppGenerateBundle = createNonAppGenerateBundle;