node.js - Kan inte inkludera .key-fil i TypeScript-bygg
Jag har en public.key och en private.key-fil i min mappstruktur som inte inkluderas i bygget, dvs när jag kör tsc.
Jag använder de publika/privata nyckelparen för att generera en JSON-webbtoken. Så här importerar jag filen, vilket fungerar bra och genererar token.
private publicKey = fs.readFileSync(path.join(__dirname, "../../utils/keys/public.key"), "utf8");
Samma kod gäller för private.key, bara med filnamnsändringen.
Detta är min tsconfig.json-fil
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": false,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist/",
"pretty": true,
"baseUrl": ".",
"alwaysStrict": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"paths": {
"*": ["node_modules/*", "src/*", "*"]
}
},
"include": ["src/**/**/*.ts"],
"exclude": ["node_modules"]
}
Finns det ett sätt att be TypeScript att inkludera *.key-filen?
Svar #1
TypeScript transkompilerar *.ts* och *.js*-filer. Det här är inte en uppgift för TypeScript att bearbeta icke-skriptfiler och inkludera dem i ett bygge.
Bundling är en uppgift för Webpack, som kan användas för att ladda godtyckliga filer med respektive loaders, t.ex. file-loader, men filer förväntas användas med import eller require i detta fall och inte fs. Det är heller inte nödvändigt att använda Webpack med Node.js-applikationer eftersom de inte drar lika stor nytta av detta som klientbaserade applikationer.
I det här fallet borde keys inte alls vara en del av dist, om inte annat bevisas. Det kan ligga utanför src eller dist och vara på samma nästlingsnivå:
dist
...
src
...
util
keys
Eftersom relativa sökvägar förväntas vara samma både inom src och dist, bör det inte vara några problem att länka till util/keys
