【问题标题】:How do I access node modules client-side when building an Express app?构建 Express 应用程序时如何在客户端访问节点模块?
【发布时间】:2021-02-05 15:48:53
【问题描述】:

我正在尝试在使用expressejs 构建的项目中使用intl-tel-input

我的 app.js 中有 app.use(express.static(path.join(__dirname, 'public')));,这意味着 Express 提供我项目中公共目录中的所有静态文件。

我无法集成 intl-tel-input,因为它是一个节点模块,相关的 css 和 js 文件位于 /node_modules/intl-tel-input/build/...,Express 根本不提供它们。因此,当我尝试在我的 Ejs 模板中链接到它们时,我收到 404 错误。

我该如何解决这个问题?我的所有想法似乎都是错误的方法。

【问题讨论】:

  • 您是否检查过“示例”:github.com/jackocnr/intl-tel-input/blob/master/examples/… 并将它们用作您工作中需要的框架
  • @RobertRowntree 是的,我看过了。它没有解决我的问题,因为这些示例没有显示使用 Express 时如何链接到源 css/js 文件。
  • 这听起来像是 webpack 之类的打包工具可以解决的问题。在您启动应用程序之前,捆绑器(重新打包)在单独的构建步骤中解决了客户端与服务器的路径位置和不同需求
  • @RobertRowntree 我确实将 Webpack 视为一种可能的解决方案,但因为它会增加额外的复杂性而决定反对它。我以前从未使用过它,所以不得不做一些额外的工作。我发现this answer 是一个非常快速、有效和简单的解决方案。

标签: node.js express npm ejs intl-tel-input


【解决方案1】:

在为此苦苦挣扎了一段时间并探索了 Webpack、RequireJS 和其他不太优雅的解决方案之后,我发现 this answer 是解决这个特定问题最相关、最简单和最有效的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多