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!

Relaterade artiklar