要编译要由RequireJS加载的打字稿模块,我总是使用module: "es2015"
(请参见下文)。直到ts 3.9都可以完美运行,而无需定义文件。
升级到打字稿4.0.2后,在每个编译文件的末尾添加一行export {};
。这将导致加载失败,并显示Uncaught SyntaxError: Unexpected token 'export'
错误。
与module: esnext
或module: es2020
相同的行为。其他类型的模块,甚至是module: "amd"
,也会产生更重要的错误。
除了添加一个丑陋的后编译步骤以删除该行或重组整个应用程序以摆脱RequireJS或针对打字稿引发问题之外,我还能做什么?
感谢您的帮助!
马里奥
"compilerOptions": {
"target": "esnext",
"module": "es2015",
"noLib": false,
"outDir": "../server/http/js",
"sourceMap": true,
"incremental": true,
"tsBuildInfoFile": "./tsconfig.tsbuildinfo",
"removeComments": true,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"importsNotUsedAsValues": "error"
},
RequireJS配置为:
requirejs.config({
baseUrl: "..",
paths: {
"jquery": "node_modules/jquery/dist/jquery.min", // Libraries
. . .
"refdata": "js/refdata", // My modules
. . .
},