在 MEAN-stack 项目的客户端包括 pdfmake
Including pdfmake in client side of MEAN-stack project
我有一个基于 MEAN.io 堆栈的网站,我正在尝试使用 pdfmake 在客户端生成 PDF 文件。可以用 bower 安装 pdfmake(看起来他们使用 browserify 来生成客户端版本)。
我正在努力让它工作。 pdfmake 的注入不起作用(我假设它无法找到)或 pdfmake 对象未定义(如果我不添加 pdfmake 作为依赖项)。我假设 pdfmake 需要以某种方式打包以使其可访问,但我不知道如何。
在config/assets.json我加了:
"bower_components/pdfmake/build/pdfmake.js"
在我要使用pdfmake的JS文件对应的HTML中添加:
<script src="bower_components/pdfmake/build/pdfmake.js"></script>
<script src="bower_components/pdfmake/build/vfs_fonts.js"></script>
我已经在 Github 上设置了一个基本版本。例如,如果有人能向我解释如何使 pdfmake 可用于 packages/system/public/controllers/index.js 中,我将不胜感激。
我最近遇到了类似的问题。这似乎是因为 pdfmake 还没有 "browserfiable." 经过大量故障排除后,我能够通过简单地包括两个客户端脚本 pdfmake.min.js
和 vfs_fonts.js
来让它工作我的构建目录中的脚本标签。而已。
尝试将两个脚本标记移出 bower_components
目录并移至您的构建目录中。确保它们在您的 bundle.js
之前,或者通常在任何脚本需要 pdfmake 之前。
我不完全理解捆绑脚本如何能够看到由这两个文件创建的全局对象,但我认为这是因为它们将 pdfMake 设置为 window 对象:
(vfs_fonts.js
文件是这样开头的:)
window.pdfMake = window.pdfMake || {}; window.pdfMake.vfs
由于 Browserify 将全局对象设置为 window
,这种方法似乎可行。 (虽然我不完全明白为什么... see this Github issue on their repo for more explanation and the deglobalify npm package.)
我有一个基于 MEAN.io 堆栈的网站,我正在尝试使用 pdfmake 在客户端生成 PDF 文件。可以用 bower 安装 pdfmake(看起来他们使用 browserify 来生成客户端版本)。
我正在努力让它工作。 pdfmake 的注入不起作用(我假设它无法找到)或 pdfmake 对象未定义(如果我不添加 pdfmake 作为依赖项)。我假设 pdfmake 需要以某种方式打包以使其可访问,但我不知道如何。
在config/assets.json我加了:
"bower_components/pdfmake/build/pdfmake.js"
在我要使用pdfmake的JS文件对应的HTML中添加:
<script src="bower_components/pdfmake/build/pdfmake.js"></script>
<script src="bower_components/pdfmake/build/vfs_fonts.js"></script>
我已经在 Github 上设置了一个基本版本。例如,如果有人能向我解释如何使 pdfmake 可用于 packages/system/public/controllers/index.js 中,我将不胜感激。
我最近遇到了类似的问题。这似乎是因为 pdfmake 还没有 "browserfiable." 经过大量故障排除后,我能够通过简单地包括两个客户端脚本 pdfmake.min.js
和 vfs_fonts.js
来让它工作我的构建目录中的脚本标签。而已。
尝试将两个脚本标记移出 bower_components
目录并移至您的构建目录中。确保它们在您的 bundle.js
之前,或者通常在任何脚本需要 pdfmake 之前。
我不完全理解捆绑脚本如何能够看到由这两个文件创建的全局对象,但我认为这是因为它们将 pdfMake 设置为 window 对象:
(vfs_fonts.js
文件是这样开头的:)
window.pdfMake = window.pdfMake || {}; window.pdfMake.vfs
由于 Browserify 将全局对象设置为 window
,这种方法似乎可行。 (虽然我不完全明白为什么... see this Github issue on their repo for more explanation and the deglobalify npm package.)