build.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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.buildOptions = 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 utils_1 = require("../utils");
  11. function buildOptions({ appService, renderer, }, userConfig, _) {
  12. const inputDir = process.env.UNI_INPUT_DIR;
  13. const outputDir = process.env.UNI_OUTPUT_DIR;
  14. // 开始编译时,清空输出目录
  15. function emptyNVueDir() {
  16. const nvueOutputDir = (0, utils_1.nvueOutDir)();
  17. if (fs_1.default.existsSync(nvueOutputDir)) {
  18. (0, uni_cli_shared_1.emptyDir)(nvueOutputDir);
  19. }
  20. }
  21. function emptyOutDir() {
  22. if (fs_1.default.existsSync(outputDir)) {
  23. (0, uni_cli_shared_1.emptyDir)(outputDir);
  24. }
  25. }
  26. if (renderer === 'native') {
  27. if (appService) {
  28. // 仅编译 main.js+App.vue 的时候才清空
  29. emptyNVueDir();
  30. emptyOutDir();
  31. }
  32. }
  33. else {
  34. if ((0, uni_cli_shared_1.isInHybridNVue)(userConfig)) {
  35. emptyNVueDir();
  36. }
  37. else {
  38. emptyOutDir();
  39. }
  40. }
  41. const sourcemap = process.env.SOURCEMAP === 'true'
  42. ? 'hidden'
  43. : userConfig.build?.sourcemap
  44. ? 'inline'
  45. : false;
  46. return {
  47. // App 端目前仅提供 inline
  48. sourcemap,
  49. emptyOutDir: false,
  50. assetsInlineLimit: 0,
  51. rollupOptions: {
  52. input: (0, uni_cli_shared_1.resolveMainPathOnce)(inputDir),
  53. output: {
  54. sourcemapPathTransform(relativeSourcePath, sourcemapPath) {
  55. const sourcePath = (0, uni_cli_shared_1.normalizePath)(path_1.default.relative(inputDir, path_1.default.resolve(path_1.default.dirname(sourcemapPath), relativeSourcePath)));
  56. if (sourcePath.startsWith('..')) {
  57. return '';
  58. }
  59. return 'uni-app:///' + sourcePath;
  60. },
  61. manualChunks: {},
  62. inlineDynamicImports: false,
  63. chunkFileNames(chunk) {
  64. if (chunk.isDynamicEntry && chunk.facadeModuleId) {
  65. const filepath = path_1.default.relative(inputDir, chunk.facadeModuleId);
  66. return (0, uni_cli_shared_1.normalizePath)(filepath.replace(path_1.default.extname(filepath), '.js'));
  67. }
  68. return '[name].js';
  69. },
  70. },
  71. },
  72. };
  73. }
  74. exports.buildOptions = buildOptions;