plugin.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.uniMiniProgramPluginPlugin = void 0;
  7. const fs_1 = __importDefault(require("fs"));
  8. const path_1 = __importDefault(require("path"));
  9. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  10. const subpackage_1 = require("./subpackage");
  11. const shared_1 = require("@vue/shared");
  12. const build_1 = require("../plugin/build");
  13. function uniMiniProgramPluginPlugin({ style: { extname }, }) {
  14. const entry = initPluginEntry();
  15. const rollupOptions = {};
  16. if (entry) {
  17. rollupOptions.input = (0, shared_1.extend)({
  18. app: (0, uni_cli_shared_1.resolveMainPathOnce)(process.env.UNI_INPUT_DIR),
  19. }, entry);
  20. }
  21. return {
  22. name: 'uni:mp-plugin',
  23. enforce: 'post',
  24. config() {
  25. return {
  26. build: {
  27. rollupOptions,
  28. },
  29. };
  30. },
  31. generateBundle: (0, subpackage_1.createNonAppGenerateBundle)(extname),
  32. };
  33. }
  34. exports.uniMiniProgramPluginPlugin = uniMiniProgramPluginPlugin;
  35. function initPluginEntry() {
  36. const pluginJsonFilename = path_1.default.resolve(process.env.UNI_INPUT_DIR, uni_cli_shared_1.MP_PLUGIN_JSON_NAME);
  37. if (!fs_1.default.existsSync(pluginJsonFilename)) {
  38. (0, build_1.notFound)(pluginJsonFilename);
  39. }
  40. const pluginJson = (0, uni_cli_shared_1.parseJson)(fs_1.default.readFileSync(pluginJsonFilename, 'utf8'), true);
  41. if (!pluginJson.main) {
  42. return;
  43. }
  44. const mainFilename = path_1.default.resolve(process.env.UNI_INPUT_DIR, pluginJson.main);
  45. if (!fs_1.default.existsSync(mainFilename)) {
  46. (0, build_1.notFound)(mainFilename);
  47. }
  48. return {
  49. [(0, uni_cli_shared_1.removeExt)(pluginJson.main)]: mainFilename,
  50. };
  51. }