【问题标题】:Rollup typescript decorators support汇总打字稿装饰器支持
【发布时间】:2019-06-28 09:11:28
【问题描述】:

我收到以下错误消息:

错误:解析错误:第 29 行:意外令牌非法

对应的代码行是mobx观察者装饰器:

@observer
class Wrapper extends Component<IProps> {

我有以下 rollup.config.js:

import typescript from 'rollup-plugin-typescript2'
import jsx from 'rollup-plugin-jsx'
import pkg from './package.json'
export default {
  input: 'src/index.ts',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
    },
    {
      file: pkg.module,
      format: 'es',
    },
  ],
  external: [
    ...Object.keys(pkg.dependencies || {}),
    ...Object.keys(pkg.peerDependencies || {}),
  ],
plugins: [
    jsx( {factory: 'React.createElement'} ),
    typescript({
      typescript: require('typescript'),
    }),
  ],
}

我的 tsconfig.json:

{
  "compilerOptions": {
    "declaration": true,
    "declarationDir": "./dist",
    "module": "es6",
    "experimentalDecorators": true,
    "outDir": "./dist",
    "target": "es5",
    "jsx": "react",
    "types": ["reflect-metadata", "node"],
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "strictPropertyInitialization": false,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "noEmit": true,
    "emitDecoratorMetadata": true,
    "noEmitHelpers": true,
    "importHelpers": true,
    "sourceMap": true,
    "noImplicitReturns": false,
    "noImplicitThis": false,
    "noImplicitAny": false,
    "strictNullChecks": false,
    "suppressImplicitAnyIndexErrors": false,
    "noUnusedLocals": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": ["node_modules"]
}

据文档所述,https://github.com/ezolenko/rollup-plugin-typescript2 插件应采用我的 tsconfig.json 文件中的所有选项,也应采用 "experimentalDecorators": true,但似乎不起作用。

【问题讨论】:

    标签: typescript decorator rollup


    【解决方案1】:

    不是 100% 肯定这适用,因为我的错误略有不同 (Error: Unexpected character '@')。

    但是,与 TypeScript 装饰器一起解决汇总问题的方法是从 tsconfig.json 中删除 outDir 选项。

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 2018-06-21
      • 2019-07-29
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2020-01-31
      • 2018-02-12
      相关资源
      最近更新 更多