node.js - Pakk NodeJS http2-applikasjon med webpack, http2 ikke funnet
Når det gjelder webpack-dokumentasjonen for eksterne biblioteker og nodejs, finnes det informasjon om at man skal kunne importere node-moduler. Dette fungerer perfekt med mindre jeg vil importere http2. Det gir følgende feil:
ERROR in ./src/index.ts
Module not found: Error: Can't resolve 'http2' in 'absolutepath/to/src'
Inngangstypefilen for typescript ser forenklet ut slik:
import { readFileSync } from 'fs';
import { createSecureServer } from 'http2';
const server = createSecureServer({...});
Og webpack-konfigurasjonsfilen ser slik ut:
const path = require('path');
module.exports = {
entry: './src/index.ts',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js'
},
node: {
global: true,
process: true,
fs: 'empty',
http2: 'empty'
},
module: {
rules: [
{ test: /\.ts$/, use: 'ts-loader' }
]
},
resolve: {
extensions: [".ts", ".tsx", ".js"],
modules: [path.resolve(__dirname, '/src'), 'node_modules/'],
descriptionFiles: ['package.json']
},
mode: 'production'
}
Og tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"experimentalDecorators": true,
"target": "es5",
"module": "commonjs",
"emitDecoratorMetadata": true,
"outDir": "dist",
"declaration": false,
"sourceMap": true,
"removeComments": true,
"moduleResolution": "node",
"strict": true,
"noImplicitAny": false,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017"
]
}
}
For eksempel fungerer importering av fs uten feil. Jeg har også sett node-libs-browser-pluginen der http2-modulen ikke er oppført. Men jeg vil ikke bruke http2 i nettleseren, bare for å pakke sammen backend-applikasjonen min. Noen forslag eller ideer? Takk og hilsen!