Node.js 带有网页包的节点类型脚本捆绑文件不';找不到ejs文件

Node.js 带有网页包的节点类型脚本捆绑文件不';找不到ejs文件,node.js,webpack,ejs,ts-node,Node.js,Webpack,Ejs,Ts Node,我有一个节点项目使用typescript和Webpack编译成一个文件。我的项目结构如下: -src -db -middleware -models -routes -services -validations -views -error --index.css --index.ejs -provider --index.css

我有一个节点项目使用typescript和Webpack编译成一个文件。我的项目结构如下:

-src
    -db
    -middleware
    -models
    -routes
    -services
    -validations
    -views
        -error
            --index.css
            --index.ejs
        -provider
            --index.css
            --index.ejs
    --server.ts
--webpack.config.js
--tsconfig.json
--package.json
我的webpack.config.js是:

const path = require('path');
const nodeExternals = require('webpack-node-externals');
const CopyPlugin = require('copy-webpack-plugin')


const {
    NODE_ENV = 'production',
} = process.env;

module.exports = {
    entry: './src/server.ts',
    mode: NODE_ENV,
    target: 'node',
    watch: NODE_ENV === 'development',
    output: {
       path: path.resolve(__dirname, 'build'),
       filename: 'index.js'
    },
    resolve: {
       extensions: ['.ts', '.js'],
    },
    module: {
        rules: [
            {
                test: /\.ts$/,
                use: [
                    'ts-loader',
                ]
            },
        ]
    },
    externals: [nodeExternals()],
    // copy my views folder to build folder
    plugins: [
        new CopyPlugin([
            {
                from: path.join(__dirname, "src", "views"),
                to: 'views',
            }
        ])
    ],
}
我在这个项目中使用了ejs作为itemplate引擎。我的服务器ts文件是:

import express from 'express'
import path from 'path'
import bodyParser from 'body-parser'
import dotenv from 'dotenv'

dotenv.config()

const app = express()

import errorResponseHandler from './middleware/errorResponseHandler'
import routes from './routes'
import './db'

app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'views')))

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json())

app.use(routes)


app.use(errorResponseHandler)

app.listen(process.env.PORT || 3000, () => {
    console.log(`app listened on port ${process.env.PORT || 3000}`)
})
我的路由文件如下所示:

import express, { Request, Response, NextFunction } from 'express'
import cashBackModel from '../models/payment'
import validate, { validations } from '../validations'


const router = express.Router()

router.route('/')
    .get((req: Request, res: Response, next: NextFunction) => {
        res.render('providers/index', undefined, (e, html) => {
            if (e) throw e;
            res.send(html)
        });
     })


router.route('/woop/cash-back')
    .get(cashBackModel.get)
    .post(validate(validations.providers), cashBackModel.post)

router.route('/*')
   .get((req: Request, res: Response) => {
        res.render('error/index', { status: 404, message: 'Page Not Found' })
    })

export default router
在开发模式下,我的应用程序工作得很好,但当我构建应用程序并运行它时,要么它找不到模块“ejs”,要么它说:

TypeError[ERR_INVALID_ARG_TYPE]:“path”参数必须是string类型。接收类型对象

我想它找不到我的ejs文件。 我怎样才能解决这个问题