解决通过ionic build --prod编译项目时出现“Could not find plugin "proposal-numeric-separator"问题

水深无声 2023-07-18 02:39 112阅读 0赞

解决通过ionic build —prod编译项目时出现“Could not find plugin “proposal-numeric-separator”问题

  • 问题背景
  • 问题分析
  • 问题解决

问题背景

最近把电脑的环境更新为最新的Ionic5、Angular8版本
ionic CLI版本为6.3.0:
Angular版本如下图
在这里插入图片描述
之后通过

  1. ionic start myApp3 tabs --type=angular

创建了一个新的项目,然后在浏览器运行

  1. ionic serve

是正常的,运行效果如下
在这里插入图片描述
但是编译为生产环境时

  1. ionic build --prod

报如下错误

  1. > ng.cmd run app:build:production
  2. Generating ES5 bundles for differential loading...
  3. An unhandled exception occurred: [BABEL] E:\ionicworkspace\mes\www\common-es2015.955615fb0c4be76032cc.js: Could not find plugin "proposal-numeric-separator". Ensure there is an entry in ./available-plugins.js for it. (While processing: "E:\\ionicworkspace\\mes\\node_modules\\@babel\\preset-env\\lib\\index.js")
  4. See "C:\Users\zheng\AppData\Local\Temp\ng-DZEicN\angular-errors.log" for further details.
  5. [ERROR] An error occurred while running subprocess ng.
  6. ng.cmd run app:build:production exited with exit code 127.
  7. Re-running this command with the --verbose flag may provide more information.

截图如下:
在这里插入图片描述

问题分析

根据上图的出错信息,可以发现是生成ES5代码的时候处理/node_modules/@babel/preset-env/lib/index.js文件时没有在/available-plugins.js中报找到插件“proposal-numeric-separator”。首先是问题出现在了babel模块中,这个模块的作用就是把咱们写的js代码翻译成各浏览器能识别的js代码,及ES6转ES5。找到node_modules/@babel/preset-env/lib/available-plugins.js中却是没有“proposal-numeric-separator”,下面我们就想需要添加一下。

问题解决

下面说一下问题的解决办法
1、首先安装这个插件@babel/plugin-proposal-numeric-separator

  1. npm install @babel/plugin-proposal-numeric-separator

2、修改node_modules/@babel/preset-env/lib/available-plugins.js文件,增加这个插件

  1. var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  2. var _default = {
  3. "proposal-numeric-separator": _pluginProposalNumericSeparator.default,
  4. }

添加上面的信息之后,node_modules/@babel/preset-env/lib/available-plugins.js文件的完整内容如下:

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  7. var _pluginSyntaxAsyncGenerators = _interopRequireDefault(require("@babel/plugin-syntax-async-generators"));
  8. var _pluginSyntaxDynamicImport = _interopRequireDefault(require("@babel/plugin-syntax-dynamic-import"));
  9. var _pluginSyntaxJsonStrings = _interopRequireDefault(require("@babel/plugin-syntax-json-strings"));
  10. var _pluginSyntaxNullishCoalescingOperator = _interopRequireDefault(require("@babel/plugin-syntax-nullish-coalescing-operator"));
  11. var _pluginSyntaxObjectRestSpread = _interopRequireDefault(require("@babel/plugin-syntax-object-rest-spread"));
  12. var _pluginSyntaxOptionalCatchBinding = _interopRequireDefault(require("@babel/plugin-syntax-optional-catch-binding"));
  13. var _pluginSyntaxOptionalChaining = _interopRequireDefault(require("@babel/plugin-syntax-optional-chaining"));
  14. var _pluginSyntaxTopLevelAwait = _interopRequireDefault(require("@babel/plugin-syntax-top-level-await"));
  15. var _pluginProposalAsyncGeneratorFunctions = _interopRequireDefault(require("@babel/plugin-proposal-async-generator-functions"));
  16. var _pluginProposalDynamicImport = _interopRequireDefault(require("@babel/plugin-proposal-dynamic-import"));
  17. var _pluginProposalJsonStrings = _interopRequireDefault(require("@babel/plugin-proposal-json-strings"));
  18. var _pluginProposalNullishCoalescingOperator = _interopRequireDefault(require("@babel/plugin-proposal-nullish-coalescing-operator"));
  19. var _pluginProposalObjectRestSpread = _interopRequireDefault(require("@babel/plugin-proposal-object-rest-spread"));
  20. var _pluginProposalOptionalCatchBinding = _interopRequireDefault(require("@babel/plugin-proposal-optional-catch-binding"));
  21. var _pluginProposalOptionalChaining = _interopRequireDefault(require("@babel/plugin-proposal-optional-chaining"));
  22. var _pluginProposalUnicodePropertyRegex = _interopRequireDefault(require("@babel/plugin-proposal-unicode-property-regex"));
  23. var _pluginTransformAsyncToGenerator = _interopRequireDefault(require("@babel/plugin-transform-async-to-generator"));
  24. var _pluginTransformArrowFunctions = _interopRequireDefault(require("@babel/plugin-transform-arrow-functions"));
  25. var _pluginTransformBlockScopedFunctions = _interopRequireDefault(require("@babel/plugin-transform-block-scoped-functions"));
  26. var _pluginTransformBlockScoping = _interopRequireDefault(require("@babel/plugin-transform-block-scoping"));
  27. var _pluginTransformClasses = _interopRequireDefault(require("@babel/plugin-transform-classes"));
  28. var _pluginTransformComputedProperties = _interopRequireDefault(require("@babel/plugin-transform-computed-properties"));
  29. var _pluginTransformDestructuring = _interopRequireDefault(require("@babel/plugin-transform-destructuring"));
  30. var _pluginTransformDotallRegex = _interopRequireDefault(require("@babel/plugin-transform-dotall-regex"));
  31. var _pluginTransformDuplicateKeys = _interopRequireDefault(require("@babel/plugin-transform-duplicate-keys"));
  32. var _pluginTransformExponentiationOperator = _interopRequireDefault(require("@babel/plugin-transform-exponentiation-operator"));
  33. var _pluginTransformForOf = _interopRequireDefault(require("@babel/plugin-transform-for-of"));
  34. var _pluginTransformFunctionName = _interopRequireDefault(require("@babel/plugin-transform-function-name"));
  35. var _pluginTransformLiterals = _interopRequireDefault(require("@babel/plugin-transform-literals"));
  36. var _pluginTransformMemberExpressionLiterals = _interopRequireDefault(require("@babel/plugin-transform-member-expression-literals"));
  37. var _pluginTransformModulesAmd = _interopRequireDefault(require("@babel/plugin-transform-modules-amd"));
  38. var _pluginTransformModulesCommonjs = _interopRequireDefault(require("@babel/plugin-transform-modules-commonjs"));
  39. var _pluginTransformModulesSystemjs = _interopRequireDefault(require("@babel/plugin-transform-modules-systemjs"));
  40. var _pluginTransformModulesUmd = _interopRequireDefault(require("@babel/plugin-transform-modules-umd"));
  41. var _pluginTransformNamedCapturingGroupsRegex = _interopRequireDefault(require("@babel/plugin-transform-named-capturing-groups-regex"));
  42. var _pluginTransformNewTarget = _interopRequireDefault(require("@babel/plugin-transform-new-target"));
  43. var _pluginTransformObjectSuper = _interopRequireDefault(require("@babel/plugin-transform-object-super"));
  44. var _pluginTransformParameters = _interopRequireDefault(require("@babel/plugin-transform-parameters"));
  45. var _pluginTransformPropertyLiterals = _interopRequireDefault(require("@babel/plugin-transform-property-literals"));
  46. var _pluginTransformRegenerator = _interopRequireDefault(require("@babel/plugin-transform-regenerator"));
  47. var _pluginTransformReservedWords = _interopRequireDefault(require("@babel/plugin-transform-reserved-words"));
  48. var _pluginTransformShorthandProperties = _interopRequireDefault(require("@babel/plugin-transform-shorthand-properties"));
  49. var _pluginTransformSpread = _interopRequireDefault(require("@babel/plugin-transform-spread"));
  50. var _pluginTransformStickyRegex = _interopRequireDefault(require("@babel/plugin-transform-sticky-regex"));
  51. var _pluginTransformTemplateLiterals = _interopRequireDefault(require("@babel/plugin-transform-template-literals"));
  52. var _pluginTransformTypeofSymbol = _interopRequireDefault(require("@babel/plugin-transform-typeof-symbol"));
  53. var _pluginTransformUnicodeRegex = _interopRequireDefault(require("@babel/plugin-transform-unicode-regex"));
  54. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  55. var _default = {
  56. "proposal-numeric-separator": _pluginProposalNumericSeparator.default,
  57. "proposal-async-generator-functions": _pluginProposalAsyncGeneratorFunctions.default,
  58. "proposal-dynamic-import": _pluginProposalDynamicImport.default,
  59. "proposal-json-strings": _pluginProposalJsonStrings.default,
  60. "proposal-nullish-coalescing-operator": _pluginProposalNullishCoalescingOperator.default,
  61. "proposal-object-rest-spread": _pluginProposalObjectRestSpread.default,
  62. "proposal-optional-catch-binding": _pluginProposalOptionalCatchBinding.default,
  63. "proposal-optional-chaining": _pluginProposalOptionalChaining.default,
  64. "proposal-unicode-property-regex": _pluginProposalUnicodePropertyRegex.default,
  65. "syntax-async-generators": _pluginSyntaxAsyncGenerators.default,
  66. "syntax-dynamic-import": _pluginSyntaxDynamicImport.default,
  67. "syntax-json-strings": _pluginSyntaxJsonStrings.default,
  68. "syntax-nullish-coalescing-operator": _pluginSyntaxNullishCoalescingOperator.default,
  69. "syntax-object-rest-spread": _pluginSyntaxObjectRestSpread.default,
  70. "syntax-optional-catch-binding": _pluginSyntaxOptionalCatchBinding.default,
  71. "syntax-optional-chaining": _pluginSyntaxOptionalChaining.default,
  72. "syntax-top-level-await": _pluginSyntaxTopLevelAwait.default,
  73. "transform-arrow-functions": _pluginTransformArrowFunctions.default,
  74. "transform-async-to-generator": _pluginTransformAsyncToGenerator.default,
  75. "transform-block-scoped-functions": _pluginTransformBlockScopedFunctions.default,
  76. "transform-block-scoping": _pluginTransformBlockScoping.default,
  77. "transform-classes": _pluginTransformClasses.default,
  78. "transform-computed-properties": _pluginTransformComputedProperties.default,
  79. "transform-destructuring": _pluginTransformDestructuring.default,
  80. "transform-dotall-regex": _pluginTransformDotallRegex.default,
  81. "transform-duplicate-keys": _pluginTransformDuplicateKeys.default,
  82. "transform-exponentiation-operator": _pluginTransformExponentiationOperator.default,
  83. "transform-for-of": _pluginTransformForOf.default,
  84. "transform-function-name": _pluginTransformFunctionName.default,
  85. "transform-literals": _pluginTransformLiterals.default,
  86. "transform-member-expression-literals": _pluginTransformMemberExpressionLiterals.default,
  87. "transform-modules-amd": _pluginTransformModulesAmd.default,
  88. "transform-modules-commonjs": _pluginTransformModulesCommonjs.default,
  89. "transform-modules-systemjs": _pluginTransformModulesSystemjs.default,
  90. "transform-modules-umd": _pluginTransformModulesUmd.default,
  91. "transform-named-capturing-groups-regex": _pluginTransformNamedCapturingGroupsRegex.default,
  92. "transform-new-target": _pluginTransformNewTarget.default,
  93. "transform-object-super": _pluginTransformObjectSuper.default,
  94. "transform-parameters": _pluginTransformParameters.default,
  95. "transform-property-literals": _pluginTransformPropertyLiterals.default,
  96. "transform-regenerator": _pluginTransformRegenerator.default,
  97. "transform-reserved-words": _pluginTransformReservedWords.default,
  98. "transform-shorthand-properties": _pluginTransformShorthandProperties.default,
  99. "transform-spread": _pluginTransformSpread.default,
  100. "transform-sticky-regex": _pluginTransformStickyRegex.default,
  101. "transform-template-literals": _pluginTransformTemplateLiterals.default,
  102. "transform-typeof-symbol": _pluginTransformTypeofSymbol.default,
  103. "transform-unicode-regex": _pluginTransformUnicodeRegex.default
  104. };
  105. exports.default = _default;

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读