Приложение Bundle NodeJS http2 с веб-пакетом, http2 не найдено - PullRequest
0 голосов
/ 13 сентября 2018

Что касается веб-пакета docs для внешних библиотек и nodejs, есть информация, что нужно иметь возможность импортировать модули узлов.Это прекрасно работает, если я не хочу импортировать http2 .Он печатает следующую ошибку:

ERROR in ./src/index.ts
Module not found: Error: Can't resolve 'http2' in 'absolutepath/to/src'

Упрощенный файл машинописного ввода выглядит так:

import { readFileSync } from 'fs';
import { createSecureServer } from 'http2';

const server = createSecureServer({...});

А файл конфигурации веб-пакета выглядит следующим образом:

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'
}

И 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"
    ]
  }
}

Например, импорт fs работает без ошибок.Я также видел плагин node-libs-browser , где модуль http2 отсутствует в списке.Но я не хочу использовать http2 в браузере, а просто для комплектации моего внутреннего приложения.Есть предложения или идеи?Спасибо и ура!

...