JsBarcode 未定义

JsBarcode is not defined

在我的 node.js 网络应用程序中使用 jsbarcode 我无法摆脱错误:JsBarcode is not defined.

在我的 .ejs 文件中,我有以下代码:

<html>
<head>
    <meta charset="utf-8">
    <script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.8.0/dist/JsBarcode.all.min.js"></script>
</head>
  <body>
        <svg id="barcode"></svg>
        <% JsBarcode("#barcode", obj[0].num); %>
  </body>
</html>

我很困惑为什么 JsBarcode 是未定义的?我已尝试确保通过 npm install jsbarcode --save 安装了 jsbarcode,并且在我的 .ejs 文件的头部包含了 cdn <script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.8.0/dist/JsBarcode.all.min.js"></script>

首先,EJS 是一个模板引擎,因此您通过 NPM 安装的包在这种情况下将不起作用(除非您注入内容)。

在您的方案中,您可以像对待任何其他 HTML 页面一样对待它。只需使用 script 标记获取库,然后包含您的代码

// template.ejs

<svg id="barcode"></svg>

<script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.8.0/dist/JsBarcode.all.min.js"></script>
<script>
  JsBarcode('#barcode', <%- obj[0].num %>)
</script>

请注意,JSBarcode 也有较新版本可用,所以我想它也值得更新。

<script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.4/dist/JsBarcode.all.min.js"></script>