es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo compilo mi código TypeScript con declaraciones de importación?

Estoy haciendo un proyecto en TypeScript. No soy muy bueno con tsc y otras cosas parecidas. Uso declaraciones de importación en mi código. Realmente quiero poder compilar a JavaScript sin cambiarlas. Este es mi archivo tsconfig.json:

tsconfig.json

{
    "compilerOptions": {
        "lib": ["ESNext"],
        "module": "commonjs",
        "moduleResolution": "node",
        "target": "ESNext",
        "outDir": "dist",
        "sourceMap": true,
        "esModuleInterop": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "allowSyntheticDefaultImports": true,
        "skipLibCheck": true,
        "skipDefaultLibCheck": true,
        "declaration": true,
        "resolveJsonModule": true
    },
    "include": ["src", "Citation"],
    "exclude": ["node_modules"]
}

package.json

{
    "name": "kostegator",
    "version": "1.0.0",
    "description": "",
    "main": "src/index.ts",
    "scripts": {
        "start": "ts-node-dev --respawn --transpile-only --poll ./src",
        "build": "tsc src/index.ts -w -esModuleInterop --resolveJsonModule",
        "test": "node dist/index.js --experimental-specifier-resolution=node"
    },
    "type": "module",
    "keywords": [],
    "author": "ProGamer2711",
    "license": "ISC",
    "devDependencies": {
        "@types/ms": "^0.7.31",
        "ts-node": "^10.1.0",
        "ts-node-dev": "^1.1.8",
        "typescript": "^4.3.5"
    },
    "dependencies": {
        "canvas": "^2.6.1",
        "discord.js": "^12.5.3",
        "gif-encoder-2": "^1.0.5",
        "mongoose": "^5.13.2",
        "ms": "^2.1.3",
        "node-fetch": "^2.6.1"
    }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para compilar tu código TypeScript a JavaScript sin cambiar tus declaraciones de importación, puedes incluir la opción "esModuleInterop": true en tu archivo tsconfig.json. Esta opción permite la compatibilidad con módulos que utilizan el estilo CommonJS de module.exports y permite una interoperabilidad fluida con módulos tanto de CommonJS como de ECMAScript.

    Tu archivo tsconfig.json actual ya incluye esta opción, ¡así que estás listo para seguir adelante! Solo ejecuta el comando tsc para compilar tu código TypeScript a JavaScript. También puedes ejecutar el script build en tu archivo package.json para compilar tu código y detectar cambios:

    npm run build
    

    Esto compilará tu archivo src/index.ts a JavaScript y generará el código compilado en el directorio dist/, preservando tus declaraciones de importación.

Comments are closed.