Javascript 使用NodeJS/npm调用本地JS包
我正在运行NodeJS,并通过npm安装了table2csv包Javascript 使用NodeJS/npm调用本地JS包,javascript,node.js,npm,Javascript,Node.js,Npm,我正在运行NodeJS,并通过npm安装了table2csv包 sudo npm install table2csv 现在,我试图在网页中使用此软件包,但我不知道如何正确调用它,下面是我的示例: <!doctype html> <html> <head> <meta charset="utf-8"> <!--/var/www/node_modules/table2csv/dist/table2csv.min.js--&
sudo npm install table2csv
现在,我试图在网页中使用此软件包,但我不知道如何正确调用它,下面是我的示例:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!--/var/www/node_modules/table2csv/dist/table2csv.min.js-->
<script src=”node_modules/table2csv/dist/table2csv.min.js”></script>
<script>function exportCSV(){
var csv = $("#fullDataTable").table2CSV();
window.location.href = 'data:text/csv;charset=UTF-8,'+ encodeURIComponent(csv);
}
</script>
</head>
<body>
<table id="fullDataTable">
<thead>
<tr>
<th>Foo.</th>
<th>bar.</th>
<th>bla.</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
<Button onclick="exportCSV()">DOWNLOAD</button>
</body>
</html>
----更新2----
始终在使用table2csv之前导入JQuery
(但问题仍未解决,因为无法加载库
----更新3-----
在使用cdn链接时,控制台给了我以下错误
未捕获的语法错误:在
上出现意外标记
Uncaught TypeError: document.getElementById(...).table2csv is not a function
at exportCSV (about:11)
at HTMLButtonElement.onclick (about:34)
第11行:var csv=document.getElementById('fullDataTable').table2csv();
----更新4----
我放弃了,只是把table2csv.js
的内容复制到我的html.Hallelujah中的
块中。当使用npm
时,你已经进入了一个模块
世界(与你可能习惯的静态脚本世界相反)。因此,安装包所在的文件夹名为节点模块
模块通常不影响全局名称空间,这意味着它们不提供任何可全局调用的内容,例如在内联事件侦听器中,如onclick=“”
您不能直接从HTML中引用任何node_模块
包,这将是一个巨大的安全问题,因为通常node_模块
不在您的webroot中,并且允许访问webroot之外的文件和文件夹是非常不安全的
您现在有三种选择:
深入了解模块和模块捆绑包的世界,如webpack。这可能需要3个月的时间来理解和使用,同时了解和理解您正在做的事情。如果您计划进行大量Javascript开发,这是无法避免的
将/var/www/node_modules/table2csv/dist/table2csv.min.js
复制到您的项目文件夹中,并像您自己的Javascripts一样包含它。这有一个缺点,即每次更新包时您都必须手动执行此操作
找到承载所需文件的CDN(内容交付网络),并从那里引用它
<script src="https://cdn.jsdelivr.net/npm/table2csv@1.1.3/dist/table2csv.min.js" integrity="sha256-O3PXZsVrc25oRq6k38cesC5NsdZOD/tMdjQXEWdaaZU=" crossorigin="anonymous"></script>
如果我使用第三个选项,我还能使用“onClick”功能吗?
<script src="https://cdn.jsdelivr.net/npm/table2csv@1.1.3/dist/table2csv.min.js" integrity="sha256-O3PXZsVrc25oRq6k38cesC5NsdZOD/tMdjQXEWdaaZU=" crossorigin="anonymous"></script>