Typescript + Firebase + Node + Webpack ошибка в скомпилированном с Firebase - PullRequest
0 голосов
/ 01 октября 2019

Я делаю приложение для узла, которое будет выполняться на рабочем столе, без необходимости устанавливать зависимости проекта, но я нашел несколько проблем, которые я решал с документацией, которую я нашел в Интернете.

Но есть проблема, заключающаяся в том, что компиляция веб-пакета не устраняет зависимости Firebase и выдает несколько предупреждений, а при попытке запустить приложение на узле выдает ошибки. tsconfig.json

{
  "compilerOptions": {
    "outDir": "./dist",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "commonjs",
    "importHelpers": true,
    "target": "es2015",
    "allowJs": true,
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ],
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "types": [
      "node"
    ]
  },
  "include": [
    "src/app/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

webpack.config.js

const path = require('path');
module.exports = {
  mode   : 'production',
  target : 'node',
  entry  : './src/app/app.ts',
  output : {
    filename: 'airtm-dashboard-node.js',
    path    : path.resolve(__dirname, 'dist'),
  },
  module : {
    rules: [
      {
        test   : /\.tsx?$/,
        loader : 'ts-loader',
        options: {
          transpileOnly: true,
        },
        exclude: /node_modules/,
      },
    ],
  },
  plugins: [],
  resolve: {
    alias     : {
      // ['firebase/app']: path.resolve(__dirname, 'node_modules/firebase/app/dist/index.cjs.js'),
      // ['firebase/firestore']: path.resolve(__dirname, 'node_modules/firebase/firestore/dist/index.cjs.js'),
    },
    extensions: ['.tsx', '.ts', '.js'],
    mainFields: ['main', 'module', 'browser'],
  },
};

Firebase.service.ts

import * as firebase from 'firebase/app'; 
import 'firebase/auth'; 
import 'firebase/firestore'; 
import { environment } from '../../environments/environment'; 

firebase.initializeApp(environment.firebaseConfig); 

export default firebase;

, но я получаю следующие ошибки.

> webpack

Hash: f5b4800114e68b8e3215
Version: webpack 4.41.0
Time: 1805ms
Built at: 2019-10-01 6:14:44
                  Asset      Size  Chunks             Chunk Names
airtm-dashboard-node.js  1.03 MiB       0  [emitted]  main
Entrypoint main = airtm-dashboard-node.js
  [1] external "util" 42 bytes {0} [built]
  [2] external "path" 42 bytes {0} [built]
  [4] external "fs" 42 bytes {0} [built]
 [36] external "url" 42 bytes {0} [built]
 [47] ./src/app/services/firebase/firebase.service.ts 400 bytes {0} [built]
 [49] external "http" 42 bytes {0} [built]
 [50] external "https" 42 bytes {0} [built]
 [81] external "child_process" 42 bytes {0} [built]
[142] ./src/app/app.ts 2.59 KiB {0} [built]
[143] ./src/app/services/user/auth.service.ts 1010 bytes {0} [built]
[226] ./src/app/environments/environment.ts 525 bytes {0} [built]
[227] ./src/app/services/user/user-data.service.ts 1.3 KiB {0} [built]
[282] ./src/app/services/user/payments-methods.service.ts 7.24 KiB {0} [built]
[298] external "zlib" 42 bytes {0} [built]
[308] ./src/app/data/airtm-requests/my-payments-methods-data.ts 614 bytes {0} [built]
    + 294 hidden modules

WARNING in ./node_modules/grpc/src/grpc_extension.js 32:12-33
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/grpc/index.js
 @ ./node_modules/@firebase/firestore/dist/index.node.cjs.js
 @ ./node_modules/firebase/firestore/dist/index.cjs.js
 @ ./src/app/services/firebase/firebase.service.ts
 @ ./src/app/services/user/payments-methods.service.ts
 @ ./src/app/app.ts

WARNING in ./node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js 20:22-48
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/grpc/src/grpc_extension.js
 @ ./node_modules/grpc/index.js
 @ ./node_modules/@firebase/firestore/dist/index.node.cjs.js
 @ ./node_modules/firebase/firestore/dist/index.cjs.js
 @ ./src/app/services/firebase/firebase.service.ts
 @ ./src/app/services/user/payments-methods.service.ts
 @ ./src/app/app.ts

WARNING in ./node_modules/grpc/node_modules/node-pre-gyp/lib/util/versioning.js 17:20-67
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js
 @ ./node_modules/grpc/src/grpc_extension.js
 @ ./node_modules/grpc/index.js
 @ ./node_modules/@firebase/firestore/dist/index.node.cjs.js
 @ ./node_modules/firebase/firestore/dist/index.cjs.js
 @ ./src/app/services/firebase/firebase.service.ts
 @ ./src/app/services/user/payments-methods.service.ts
 @ ./src/app/app.ts

WARNING in ./node_modules/bytebuffer/dist/bytebuffer-node.js
Module not found: Error: Can't resolve 'memcpy' in 'E:\Programación\Proyectos\Node\AirTM-Dashboard-Node\node_modules\bytebuffer\dist'
 @ ./node_modules/bytebuffer/dist/bytebuffer-node.js
 @ ./node_modules/grpc/node_modules/protobufjs/dist/protobuf.js
 @ ./node_modules/grpc/index.js
 @ ./node_modules/@firebase/firestore/dist/index.node.cjs.js
 @ ./node_modules/firebase/firestore/dist/index.cjs.js
 @ ./src/app/services/firebase/firebase.service.ts
 @ ./src/app/services/user/payments-methods.service.ts
 @ ./src/app/app.ts

Я искал в интернете, как правильно настроить среду разработки, чтобы можно было правильно скомпилировать приложение, которое будет выполняться в консоли рабочего стола, но то, что я обнаружил, не решило проблему.

Буду признателен, если вы так любезно поможете мне решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...