Razzle: Переход на Машинопись

Созданный на 14 апр. 2019  ·  3Комментарии  ·  Источник: jaredpalmer/razzle

У меня большой проект, и я хочу начать переход на Typescript по одному компоненту.

Я пробовал --with-typescript, но для этого мне нужно переименовать все файлы сразу. Я хотел бы конвертировать медленно, чтобы непреобразованные файлы сохраняли свое начальное расширение, в то время как новые файлы принимали расширения файлов машинописного текста.

Как мне сделать это в рассудке?

Самый полезный комментарий

Догадаться!

npm i -D @babel/preset-typescript ts-loader typescript

Добавить @babel/typescript в .babelrc

"presets": [
    "razzle/babel",
    "@babel/typescript"
]

Добавьте это в razzle.config.js

config.resolve.extensions = config.resolve.extensions.concat(['.ts', '.tsx']);
config.module.rules.push({ test: /\.tsx?$/, loader: 'ts-loader' });

Создайте tsconfig.json

{
    "compilerOptions": {
        "experimentalDecorators": true,
        // Target latest version of ECMAScript.
        "target": "esnext",
        // Search under node_modules for non-relative imports.
        "moduleResolution": "node",
        // Process & infer types from .js files.
        "allowJs": false,
        // Enable strictest settings like strictNullChecks & noImplicitAny.
        "strict": false,
        // Disallow features that require cross-file information for emit.
        "isolatedModules": true,
        // Import non-ES modules as default imports.
        "esModuleInterop": true,
        "jsx": "react"
    },
    "include": [
        "src"
    ],
    "exclude": [
        "node_modules",
    ]
}

Вот и все, теперь вы можете переименовывать расширения в .ts и .tsx, чтобы включить машинный текст для этих файлов.

Все 3 Комментарий

Привет, я также столкнулся с трудностями, пытаясь заставить пример with-typescript работать с файлами jsx чтобы обеспечить постепенную миграцию существующих проектов.
Есть у кого-нибудь идеи, как заархивировать эту цель?

Догадаться!

npm i -D @babel/preset-typescript ts-loader typescript

Добавить @babel/typescript в .babelrc

"presets": [
    "razzle/babel",
    "@babel/typescript"
]

Добавьте это в razzle.config.js

config.resolve.extensions = config.resolve.extensions.concat(['.ts', '.tsx']);
config.module.rules.push({ test: /\.tsx?$/, loader: 'ts-loader' });

Создайте tsconfig.json

{
    "compilerOptions": {
        "experimentalDecorators": true,
        // Target latest version of ECMAScript.
        "target": "esnext",
        // Search under node_modules for non-relative imports.
        "moduleResolution": "node",
        // Process & infer types from .js files.
        "allowJs": false,
        // Enable strictest settings like strictNullChecks & noImplicitAny.
        "strict": false,
        // Disallow features that require cross-file information for emit.
        "isolatedModules": true,
        // Import non-ES modules as default imports.
        "esModuleInterop": true,
        "jsx": "react"
    },
    "include": [
        "src"
    ],
    "exclude": [
        "node_modules",
    ]
}

Вот и все, теперь вы можете переименовывать расширения в .ts и .tsx, чтобы включить машинный текст для этих файлов.

Если вы пришли сюда из будущего, проверка большой кутерьмы поддерживается машинопись плагина здесь .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

sebmor picture sebmor  ·  4Комментарии

corydeppen picture corydeppen  ·  3Комментарии

pseudo-su picture pseudo-su  ·  3Комментарии

Jayphen picture Jayphen  ·  4Комментарии

piersolenski picture piersolenski  ·  4Комментарии