usePluginPreset.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. module.exports = function (fileInfo, api) {
  2. const j = api.jscodeshift
  3. const root = j(fileInfo.source)
  4. const useDoubleQuote = root.find(j.Literal).some(({ node }) => node.raw.startsWith('"'))
  5. root
  6. .find(j.Literal, { value: '@vue/app' })
  7. .replaceWith(j.stringLiteral('@vue/cli-plugin-babel/preset'))
  8. root
  9. .find(j.Literal, { value: '@vue/babel-preset-app' })
  10. .replaceWith(j.stringLiteral('@vue/cli-plugin-babel/preset'))
  11. const templateLiterals = root
  12. .find(j.TemplateLiteral, {
  13. expressions: { length: 0 }
  14. })
  15. templateLiterals
  16. .find(j.TemplateElement, {
  17. value: {
  18. cooked: '@vue/app'
  19. }
  20. })
  21. .closest(j.TemplateLiteral)
  22. .replaceWith(j.stringLiteral('@vue/cli-plugin-babel/preset'))
  23. templateLiterals
  24. .find(j.TemplateElement, {
  25. value: {
  26. cooked: '@vue/babel-preset-app'
  27. }
  28. })
  29. .closest(j.TemplateLiteral)
  30. .replaceWith(j.stringLiteral('@vue/cli-plugin-babel/preset'))
  31. return root.toSource({
  32. lineTerminator: '\n',
  33. quote: useDoubleQuote ? 'double' : 'single'
  34. })
  35. }