我收到以下错误消息:如果您要从Babylon / Babel 6迁移或要使用旧的装饰器提案,则应使用“ decorators-legacy”插件而不是“ decorators”。
package.json
"@babel/plugin-proposal-decorators": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz", "integrity": "sha512-YooynBO6PmBgHvAd0fl5e5Tq/a0pEC6RqF62ouafme8FzdIVH41Mz/u1dn8fFVm4jzEJ+g/MsOxouwybJPuP8Q==", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-replace-supers": "^7.1.0", "@babel/helper-split-export-declaration": "^7.0.0", "@babel/plugin-syntax-decorators": "^7.1.0" } }, "@babel/plugin-syntax-decorators": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz", "integrity": "sha512-uQvRSbgQ0nQg3jsmIixXXDCgSpkBolJ9X7NYThMKCcjvE8dN2uWJUzTUNNAeuKOjARTd+wUQV0ztXpgunZYKzQ==", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "babel-plugin-syntax-decorators": { "version": "6.13.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", "dev": true }, "babel-plugin-transform-decorators-legacy": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz", "integrity": "sha512-jYHwjzRXRelYQ1uGm353zNzf3QmtdCfvJbuYTZ4gKveK7M9H1fs3a5AKdY1JUDl0z97E30ukORW1dzhWvsabtA==", "dev": true, "requires": { "babel-plugin-syntax-decorators": "^6.1.18", "babel-runtime": "^6.2.0", "babel-template": "^6.3.0" } }, "requires": { "@babel/plugin-proposal-decorators": "7.1.2", }
tsconfig.json
{ "compilerOptions": { "experimentalDecorators": true, "allowJs": true } }
该错误消息有点令人困惑,但是通过进行一些深入的搜索,您可以使用以下方法解决它。
除了您在本指南中使用webpack之外,我不做任何假设。
您需要将babel提案装饰器添加到您的开发依赖项中(您仅在开发期间需要它)(您已经添加了)。
如果使用纱线
yarn add --dev @babel/plugin-proposal-decorators
npm的其他版本
npm install --save-dev @babel/plugin-proposal-decorators
然后在您的package.json文件中,找到babel config部分,如果不存在则添加一个。配置名称严格是“ babel”。
"babel": { "presets": [ "react-app" ], "plugins": [ [ "@babel/plugin-proposal-decorators", { "legacy": true } ] ] }
如果用手键入缩进,请格外注意。注意对象"@babel/plugin-proposal-decorators"深深地嵌套在两个数组中,因此它必须如此工作。
"@babel/plugin-proposal-decorators"
只是为了健全性检查,您的devDependencies至少会是
"devDependencies": { "@babel/plugin-proposal-decorators": "^7.1.2" }
现在,您可以使用yarn或npm构建您的应用程序,并从此过上幸福的生活。