嘿,我正在尝试为我的应用程序获取表格排序器。我想用这个(https://github.com/tristen/tablesort),但我无法让它工作。我在我的 package.json 文件中有它,我在整个 NPM 中安装它,然后在类似var tablesort = require('tablesort');
. 主要问题在于它附带的模块。在 github 项目中,他们需要这样:<script src='tablesort.number.js'></script>
. 如何将这种代码转换为节点/需要友好的代码,以加载所有这些模块并让我对表进行排序?我不知道如何让这个 tablesorter 与 nodejs 应用程序一起运行。
2 回答
既然你使用 Browserify,你应该没问题。
TableSort 库在其源代码中有一个 CommonJS 兼容的导出。添加
var TableSort = require("tablesort");
您的源代码应该足以将库包含到您的构建包中,并为您提供对 TableSort 构造函数的引用。该项目的自述文件甚至有那个例子。
但是,捆绑的排序方法并非如此,因为它们希望找到对TableSort
原型的全局引用,然后使用其扩展方法对其进行扩展,例如TableSort.date。
您可以Browserify-shim使 CommonJS 不兼容的模块与 CommonJS 兼容。然而,在我的快速实验中,如果没有切片和切块,我就无法让它正常工作。由于某种原因,在包的子文件夹中包含文件时,browserify-shim 的文件解析失败。
我确实设法通过将排序方法复制到我的项目文件夹中来包含它们。我做了一个Gist 演示,其中包含一个 shimmed 排序方法。克隆它,运行npm install && npm run build
,然后index.html
在浏览器中打开。
您可以tablesort.js
从此处下载 到您的目录,然后将其添加到文件中:
module.exports = Tablesort;
然后,如果您想要一个特定的表格排序,例如“数字”。你应该tablesort.number.js
从这里下载
然后,您应该将此更改添加到tablesort.number.js
var Tablesort= require('./tablesort.js')
module.exports = Tablesort;
最后,在你的文件中你使用这个:
var tablesort = require('./tablesort.number.js')