首页 > 解决方案 > 在节点服务器 Typescript 文件中使用 Firebase

问题描述

• 我最近在我的应用程序中使用 Angular Universal 实现了服务器端渲染。

• 这需要将我的节点服务器文件从.js 转换为.ts。

• Typescript 使用 webpack 编译为 javascript

• 当我使用以下命令运行服务器时,一切正常:ts-node server.ts

• 使用 webpack 编译为 javascript 后,我​​的服务器中使用的 Firebase API 出现以下错误:

./node_modules/google-auto-auth/node_modules/mime/index.js 中的错误模块未找到:错误:无法解析 '/Users/XX/Desktop/XX/XX/node_modules 中的 './types/standard' /google-auto-auth/node_modules/mime'

./node_modules/@google-cloud/storage/node_modules/mime/index.js 中的错误模块未找到:错误:无法解析 '/Users/XX/Desktop/XX/OM- 中的 './types/standard' XX/node_modules/@google-cloud/storage/node_modules/mime'

等等等等

如何解决这个问题?

我的 webpack 配置代码:

const path = require('path');
const webpack = require('webpack');

module.exports = {
  entry: {server: './server.ts'},
  resolve: {extensions: ['.js', '.ts']},
  target: 'node',
  mode: 'none',
  // this makes sure we include node_modules and other 3rd party libraries
  externals: [/(node_modules|main\..*\.js)/],
  output: {
    path: __dirname,
    filename: '[name].js'
  },
  module: {
    rules: [
      {test: /\.ts$/, loader: 'ts-loader'}
    ]
  },
  plugins: [
    // Temporary Fix for issue: https://github.com/angular/angular/issues/11580
    // for "WARNING Critical dependency: the request of a dependency is an expression"
    new webpack.ContextReplacementPlugin(
      /(.+)?angular(\\|\/)core(.+)?/,
      path.join(__dirname, 'src'), // location of your src
      {} // a map of your routes
    ),
    new webpack.ContextReplacementPlugin(
      /(.+)?express(\\|\/)(.+)?/,
      path.join(__dirname, 'src'),
      {}
    )
  ]
}

谢谢!

标签: node.jsangulartypescriptfirebasewebpack

解决方案


也许这可能与缺少类型有关?

尝试为所有抛出错误的包安装缺少的类型

例如:npm install --save @types/google-cloud__storage


推荐阅读