postinstall.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* eslint-disable @typescript-eslint/no-require-imports */
  2. /* eslint-disable @typescript-eslint/no-var-requires */
  3. // eslint-disable-next-line @typescript-eslint/no-var-requires
  4. const path = require('node:path');
  5. const fse = require('fs-extra');
  6. const packageJson = require('../package.json');
  7. const packageJsonFilePath = path.join(__dirname, '../package.json');
  8. // 根据项目vue切换版本
  9. let vue = null;
  10. try {
  11. vue = require('vue');
  12. } catch (e) {
  13. console.log('请安装使用vue2/3');
  14. return;
  15. }
  16. const { version } = vue;
  17. if (typeof version !== 'string' || !(version.startsWith('2.') || version.startsWith('3.'))) {
  18. console.log('请安装使用vue2/3');
  19. return;
  20. }
  21. const isVue2 = version.startsWith('2.');
  22. const isVue27 = version.startsWith('2.7.');
  23. // eslint-disable-next-line no-nested-ternary
  24. const dir = `dist/${isVue2 ? (isVue27 ? 'v2.7' : 'v2') : 'v3'}`;
  25. const exportObject = {
  26. main: `${dir}/index.umd.js`,
  27. module: `${dir}/index.es.js`,
  28. types: `${dir}/index.d.ts`,
  29. style: `${dir}/style.css`,
  30. exports: {
  31. '.': {
  32. types: `./${dir}/index.d.ts`,
  33. import: `./${dir}/index.es.js`,
  34. require: `./${dir}/index.cjs.js`,
  35. },
  36. },
  37. };
  38. fse.writeJsonSync(packageJsonFilePath, Object.assign(packageJson, exportObject), { spaces: '\t' });