Tengo un proyecto de ejemplo simple usando TypeScript: https://github.com/unindented/ts-webpack-example
Ejecutar tsc -p .
(con la tsc
versión 1.8.10) arroja lo siguiente:
app/index.ts(1,21): error TS2307: Cannot find module 'components/counter'.
components/button/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/button/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/counter/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(4,27): error TS2307: Cannot find module 'shared/backbone_with_subviews'.
components/counter/index.ts(5,20): error TS2307: Cannot find module 'components/button'.
Se queja de todas las importaciones de archivos locales, como los siguientes:
import Counter from 'components/counter';
Si lo cambio a una ruta relativa, funciona, pero no quiero, ya que hace que mi vida sea más difícil al mover archivos:
import Counter from '../components/counter';
El vscode
código base no usa rutas relativas, pero todo funciona bien para ellos, por lo que debo perder algo en mi proyecto: https://github.com/Microsoft/vscode/blob/0e81224179fbb8f6fda18ca7362d8500a263cfef/src/vs/languages/typescript/common /typescript.ts#L7-L14
Puede consultar mi repositorio de GitHub, pero en caso de que ayude, aquí está el tsconfig.json
archivo que estoy usando:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": false,
"removeComments": false,
"preserveConstEnums": true,
"sourceMap": true,
"outDir": "dist"
},
"exclude": [
"dist",
"node_modules"
]
}
Lo curioso es que construir el proyecto mediante el webpack
uso ts-loader
funciona bien, así que supongo que es solo un problema de configuración ...
fuente
error TS5023: Unknown compiler option 'moduleResolution'.
import * as microsoftTeams from "@microsoft/teams-js";
un .html estático que utiliza.js
archivos compiladostsc
para equipos de MS.En VS2019, la página de propiedades del proyecto , la pestaña Compilación de TypeScript tiene una configuración (menú desplegable) para "Sistema de módulos". Cuando cambié eso de "ES2015" a CommonJS , VS2019 IDE dejó de quejarse de que no podía encontrar ni axios ni redux-thunk (TS2307).
tsconfig.json:
{ "compilerOptions": { "allowJs": true, "baseUrl": "src", "forceConsistentCasingInFileNames": true, "jsx": "react", "lib": [ "es6", "dom", "es2015.promise" ], "module": "esnext", "moduleResolution": "node", "noImplicitAny": true, "noImplicitReturns": true, "noImplicitThis": true, "noUnusedLocals": true, "outDir": "build/dist", "rootDir": "src", "sourceMap": true, "strictNullChecks": true, "suppressImplicitAnyIndexErrors": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "target": "es5", "skipLibCheck": true, "strict": true, "resolveJsonModule": true, "isolatedModules": true, "noEmit": true }, "exclude": [ "build", "scripts", "acceptance-tests", "webpack", "jest", "src/setupTests.ts", "node_modules", "obj", "**/*.spec.ts" ], "include": [ "src", "src/**/*.ts", "@types/**/*.d.ts", "node_modules/axios", "node_modules/redux-thunk" ] }
fuente
tsconfig.json
archivo.En algunos casos, solo necesita actualizar la
include
matriz.{ "compilerOptions": { "target": "es6", "module": "commonjs", "moduleResolution": "node", "outDir": "dist", "sourceMap": false, "baseUrl": ".", "paths": { "@/*": ["src/*"] } }, "include": ["src/**/*.ts", "tests/**/*.ts"], "exclude": ["node_modules", ".vscode"] }
fuente
Realmente depende de su cargador de módulos. Si está usando
systemjs
conbaseurl
entonces funcionaría. VSCode usa su propio cargador de módulos personalizado (basado en una versión anterior de requirejs).Recomendación
Utilice rutas relativas ya que eso es lo que
commonjs
admite. Si mueve archivos, obtendrá un error de tiempo de compilación mecanografiado (algo bueno), por lo que estará mejor que la gran mayoría de los proyectos js puros que existen (en npm).fuente
vscode
base de código en Visual Studio Code, no obtengo líneas onduladas, por lo que Visual Studio Code de alguna manera entiende cosas comoimport {notImplemented} from 'vs/base/common/errors';
, independientemente de dónde viva el archivo que contiene ese código. ¿Cómo lo hicieron?Si usa webstorm, presione Ctrl + Alt + S y abra la ventana de configuración. Idiomas y marcos> TypeScript, habilite la opción "usar tsconfig.json".
fuente
Tuve problemas para importar un Enum en mecanografiado
Lo que hice para que funcionara fue migrar la enumeración a otro archivo y realizar este cambio:
export enum MyEnum{ VALUE = "MY_VALUE" }
a
export enum MyEnum{ VALUE = 1 }
fuente
En mi caso ,
//app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions //{ // HotModuleReplacement = true //});
lo comenté en startup.cs
fuente