SO está lleno de respuestas a esto y todas son muy consistentes y no funcionan para mí, por lo que me falta algo muy obvio.
Incluso cuando intenté darme por vencido y usar el truco de pegar <script>var exports = {};</script> antes de la llamada a require.js , obtengo "Error no detectado: el nombre del módulo "src/functions" no ha sido cargado todavía para el contexto: _. Use require([])"
Aquí está mi ejemplo mínimo que no funciona que parece más consistente con las otras respuestas. También intenté pegar "type": "module" todos los lugares en los que pude pensar.
¿Qué me estoy perdiendo?
lib/ - require.js node-modules/ functions/ - functions.ts package-lock.json package.json test.html test.ts tsconfig.json src/functions.ts :
export function consoleLog(msg: string): void { console.log(msg); }; package.json :
{ "devDependencies": { "typescript": "^4.7.4" } } test.html :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>test</title> </head> <body> <script src="lib/require.js", data-main="test"></script> </body> </html> test.ts :
import { consoleLog } from "./src/functions"; function main(): void { consoleLog("foo"); } main(); tsconfig.json :
{ "compilerOptions": { "target": "es6", "module": "amd", "moduleResolution": "node", "esModuleInterop": true }, "resolveJsonModule": true }