node.js - 在节点服务器 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'),
{}
)
]
}
谢谢!
解决方案
也许这可能与缺少类型有关?
尝试为所有抛出错误的包安装缺少的类型
例如:npm install --save @types/google-cloud__storage
推荐阅读
- java - 在java中我们可以将main方法声明为:-final synchronized strictfp
- android - 删除 RecyclerView 中的填充
- javascript - 在 javascript 上的 for 和 while
- c# - C#将多个excel的所有数据复制到一个工作表中
- javascript - 如何在 WordPress `functions.php` 中将一个又一个脚本排入队列,并让它们一起工作?
- bash - 为什么在 .profile 脚本中转义 eval 的第一个字符?
- java - java.sql.TimeStamp 没有默认构造函数
- bash - 读取自制软件包管理器的“手册页”时出错
- java - 在 @Query 中使用 #{principal} 会导致“在 null 上找不到属性或字段‘principal’”
- google-bigquery - BigQuery:API 查询在不使用 order by 的情况下给出有序结果