Webpack + Express + EJS:错误:找不到模块“。”

2024-01-02

我正在使用 webpack、typescript 和 ejs 编写一个 Express Web 应用程序。当点击应该提供 .ejs 文件的路由之一时,我收到以下错误:

Error: Cannot find module "."
   at webpackMissingModule (/Users/max/Development/test/express-webpack/dist/server.js:20669:74)
   at new View (/Users/max/Development/test/express-webpack/dist/server.js:20669:152)
   at EventEmitter.render (/Users/max/Development/test/express-webpack/dist/server.js:18776:12)
   at ServerResponse.render (/Users/max/Development/test/express-webpack/dist/server.js:20479:7)
   at /Users/max/Development/test/express-webpack/dist/server.js:25508:7
   at Layer.handle [as handle_request] (/Users/max/Development/test/express-webpack/dist/server.js:4524:5)
   at next (/Users/max/Development/test/express-webpack/dist/server.js:4743:13)
   at Route.dispatch (/Users/max/Development/test/express-webpack/dist/server.js:4724:3)
   at Layer.handle [as handle_request] (/Users/max/Development/test/express-webpack/dist/server.js:4524:5)
   at /Users/max/Development/test/express-webpack/dist/server.js:4054:22

这是代码:

包.json:

{
  "name": "express-webpack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "awesome-typescript-loader": "^3.0.0-beta.18",
    "copy-webpack-plugin": "^4.0.1",
    "debug": "^2.6.0",
    "ejs": "^2.5.5",
    "express": "^4.14.0",
    "json-loader": "^0.5.4",
    "source-map-loader": "^0.1.6",
    "webpack": "^2.2.0-rc.3"
  }
}

webpack.config.js

var CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
    entry: __dirname + "/src/index.js",
    target: "node",
    output: {
        filename: "server.js",
        path: __dirname + "/dist"
    },

    // Enable sourcemaps for debugging webpack's output.
    devtool: "source-map",

    resolve: {
        // Add '.ts' and '.tsx' as resolvable extensions.
        extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
    },

    module: {
        rules: [
            // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
            { test: /\.tsx?$/, loader: "awesome-typescript-loader" },
            { test: /\.json$/, loader: 'json-loader' },

            // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
            { enforce: "pre", test: /\.js$/, loader: "source-map-loader" }
        ]
    },

    plugins: [
        new CopyWebpackPlugin([
            { from: 'src/views', to: 'views' }
        ])
    ],

    node: {
      fs: "empty"
    }
};

src/index.js

var express = require('express');

var app = express();
app.set("view engine", "ejs");
app.set("views", "./views");
app.get('/', function(req, res, next){
  res.render('index'); // <-- error originates here AFAIK
});
app.listen(8000);

视图/index.ejs

hello world

复制步骤:

  • Run webpack构建项目
  • 启动服务器node dist/server.js
  • Visit http://localhost:8000
  • 期望看到index.ejs的内容,而不是得到上面的堆栈跟踪

知道出了什么问题吗?


我深入研究了 webpack 生成的代码,发现似乎有一个错误上下文解析评估 https://webpack.github.io/docs/context.html#parser-evaluation的 webpack。 Express 使用一个简单的表达式来要求选定的视图引擎,但它无法解决该问题。

为了解决这个问题,在你的索引中你可以写

const ejs = require("ejs").__express;
const app = express();
app.set("view engine", "ejs");   
app.engine('ejs', ejs);// <-- this does the trick

但如果您想要一个明确的解决方案,请在 webpack 存储库上提出问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webpack + Express + EJS:错误:找不到模块“。” 的相关文章

随机推荐

  • ForkJoinTask 与 CompletableFuture

    在 Java 8 中 有两种启动异步计算的方法 CompletableFuture and ForkJoinTask 它们看起来都非常相似 内部类CompletableFuture甚至延长ForkJoinTask 有理由使用其中一种而不是另
  • Eclipse 中的“设置输入处理程序”是什么意思?

    在 Eclipse 中 当配置外部工具 运行 gt 外部工具 gt 外部工具配置 时 特别是 Ant 构建 在 Main 选项卡下有一个标记为 Set an Input Handler 的复选框 默认情况下会选中此选项 这是做什么的 您什么
  • 如何使用 C++11 设计一个从源中提取数据的系统

    这个问题来自 C 11 线程不能与虚拟成员函数一起使用 https stackoverflow com questions 10634603 c11 thread doesnt work with virtual member functi
  • 使用 D3 过渡逐渐更改显示为 svg 文本的数字

    我正在寻找一种简单的方法来逐渐更改使用 d3 显示为 svg 文本的数字的值 var quality 0 06 14 qSVG is just the main svg element qSVG selectAll txt data qua
  • 计算日期差(以周为单位)(Javascript)

    我有两个字符串 1387050870 and 2012 12 15 我如何计算这两个日期之间的差异 以周为单位 52 I tried Math round 1387050870 Math round new Date 2012 12 15
  • ActiveRecord:查询未对 STI 子类使用正确的类型条件

    我有一组 STI 子类继承自User基类 我发现在子类定义内的某些条件下 对子类的查询不能正确使用type健康 状况 class User lt ActiveRecord Base end class Admin lt User Rails
  • 获取 PostgreSQL 中受 UPDATE 影响的行数

    SO 和许多博客上都提出了这个问题的各种变体 但没有一个提供直接的答案 我希望有一个 我正在更新 PostgreSQL 9 0 来自 CodeIgniter PHP 框架 sql order UPDATE meters SET billed
  • C++ 错误:抛出“std::bad_alloc”实例后调用终止

    我编写了下面粘贴的代码 以按照说明的顺序执行以下任务 读取输入文件并计算其中的条目数 创建适当大小的数组 大小等于条目数 返回到输入文件的开头并再次读取 将条目存储在数组中 打印出文件中的条目数以及条目本身 这是我的代码 include
  • 什么触发(或生成)KeyEvent.ACTION_MULTIPLE?

    的文档KeyEvent ACTION MULTIPLE http developer android com reference android view KeyEvent html ACTION MULTIPLE says 连续发生多个重
  • mysql 多个或不喜欢

    我有一个 wordpress 插件 它本质上创建一个 mysql 查询并将结果返回到 wordpress 它是用户驱动的 因此最终可能会出现带有多个 NOT LIKE 的大型查询 从而导致查询非常慢 我可以用来改进的任何建议 SELECT
  • 在 IIS 6 上的 WCF REST Api 上启用 PUT(无 .svc 文件)

    在 IIS 6 上 如何允许 WCF Rest API 上的 PUT 操作 由于我没有 svc 文件 我在 global asax 上向服务类添加了一条路由 因此我无法允许在 IIS 6 上对 svc 扩展名进行 put 操作 打开IIS管
  • 如何找到标签等于字符串变量的树视图节点?

    首先 我想感谢所有花时间查看此帖子并尝试提供帮助的人 我在互联网上搜索过 但找不到选择标签文本与字符串变量的文本相同的树视图节点的示例 在 MSDN 上我找到了消息 TVM GETISEARCHSTRING 但我不知道它是否可以用来解决我的
  • Matlab:使用矩阵运算代替for循环

    在 Matlab 中是否可以仅使用矩阵运算来创建 NxN 矩阵 Mat 就像下面的两个 foor 循环所做的那样 Mat zeros N for row 1 N for col 1 N if row 1 1 lt col col lt N
  • SIFT和SURF特征提取使用MATLAB实现

    我正在使用matlab做一个古钱币识别系统 到目前为止我所做的是 转换为灰度 使用高斯滤波器去除噪声 对比度增强 使用 canny 边缘检测器进行边缘检测 现在我想提取特征进行分类 我想选择的特征是圆度 面积 颜色 SIFT 和 SURF
  • Rails attr_accessible 不适用于 :type?

    我尝试在表单中设置单表继承模型类型 所以我有一个属性选择菜单 类型 值是 STI 子类的名称 问题是错误日志不断打印 警告 无法批量分配这些受保护的属性 类型 所以我将 attr accessible type 添加到模型中 class C
  • JVM_FindSignal函数不断分配本机内存

    我部署在 Linux 机器上的 tomcat8 中的 java Web 应用程序一直在泄漏本机内存 我尝试使用 jemalloc 分析来检测泄漏源 如下所述 https github com jeffgriffith native jvm
  • 锁屏下追踪加速度计

    是否可以在锁定屏幕下跟踪加速度计值 我设法编写了一个简单的应用程序 它使用计时器从 1 计数到 100 该计时器触发一个事件 在该事件上我递增计数器 但是 当我为加速度计的 ReadingChanged 事件注册一个处理程序时 一旦屏幕锁定
  • 在 ASP.NET MVC DisplayFor Html Helper 中显示空值“NULL”

    有没有办法获得 Html DisplayFor如果模型项的值为 则在视图中显示 NULL 的值null 以下是我当前正在处理的 详细信息 视图中的某个项目的示例 现在 如果 描述 的值为 不显示任何内容 null div class dis
  • ehcache 持久化到磁盘问题

    我想用 Java 中的 ehcache 做一些我认为应该非常简单的事情 但我已经花了足够的时间让自己对文档感到沮丧 将值写入磁盘持久缓存 关闭 再次启动并读取该值 这是我的 Java 函数 private static void testC
  • Webpack + Express + EJS:错误:找不到模块“。”

    我正在使用 webpack typescript 和 ejs 编写一个 Express Web 应用程序 当点击应该提供 ejs 文件的路由之一时 我收到以下错误 Error Cannot find module at webpackMis