node.js - Kan inte kompilera moduler med alternativet 'outFile' om inte flaggan '--module' är 'amd' eller 'system'
Jag bygger en Node-Mongodb-server med Typescript och får detta fel vid kompilering:
[14:57:05] Using gulpfile ~/Desktop/mean/gulpfile.js
[14:57:05] Starting 'default'...
[14:57:05] Finished 'default' after 9.48 ms
[14:57:06] Starting 'build'...
server/app.ts(1,1): error TS6131: Cannot compile modules using option 'outFile' unless the '--module' flag is 'amd' or 'system'.
TypeScript: 1 semantic error
TypeScript: emit succeeded (with errors)
[14:57:08] Finished 'build' after 2.17 s
Här är min tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"allowJs": true,
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": "."
},
"include": [
"./server/**/*"
],
"exclude": [
"node_modules"
]
}
Jag använder gulp-typescript för att köra denna uppgift. Här är min konfiguration:
.pipe(ts({
module: "commonjs",
noImplicitAny: true,
target: "es5",
allowJs: true,
outDir: "dist",
noImplicitAny: true,
moduleResolution: "node"
})
Tack.
Svar #1
Jag hade samma fel när jag använde gulp för att kompilera TypeScript till JS i Visual Studio 2017. Min lösning var att inte använda alternativet outFile utan modul: "system"-alternativet (se första alternativet https://github.com/ivogabe/gulp-typescript).
Min uppsättning: Visual Studio 2017 15.7.4 packages.json > "gulp-typescript": "4.0.2", "typescript": "2.8.4", "@types/jquery": "3.3.4"
typescript-kompileringsuppgift i gulpfile.js
gulp.src(source)
.pipe(ts({
noImplicitAny: true,
//outFile: output,
//module: "system"
}))
.pipe(gulp.dest(destination));
När jag använder outFile: output utan modul: "system" fick jag felet: Scripts\Test.ts(1,1): error TS6131: Kan inte kompilera moduler med alternativet 'outFile' om inte flaggan '--module' är 'amd' eller 'system'.
Svar #2
Bara för andra som söker ett svar om annan information ovan inte hjälper.
Du kan försöka
//import a from './a';
//import b from './b';
namespace myproject
export class myclass {
a,
b
};
}
där 'a' och 'b' finns i det där namnområdet, eller importera dem.
Jag arbetade med detta i flera timmar - jag hoppas att det hjälper någon!
