• I recently implemented server side rendering using Angular Universal in my application.
• This required converting my node server file from .js to .ts.
• Typescript is compiled to javascript using webpack
• Everything works when I run the server using : ts-node server.ts
• After compiling to javascript using webpack, I get the following error for Firebase API's used in my server:
ERROR in ./node_modules/google-auto-auth/node_modules/mime/index.js Module not found: Error: Can't resolve './types/standard' in '/Users/XX/Desktop/XX/XX/node_modules/google-auto-auth/node_modules/mime'
ERROR in ./node_modules/@google-cloud/storage/node_modules/mime/index.js Module not found: Error: Can't resolve './types/standard' in '/Users/XX/Desktop/XX/OM-XX/node_modules/@google-cloud/storage/node_modules/mime'
etc. etc.
How can this be tackled?
My webpack config code:
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'),
{}
)
]
}
Thank you!