如何在node.js应用程序中需要额外的模块

嘿,我试图为我的应用程序得到一个表格。 我想去这个( https://github.com/tristen/tablesort ),但我有问题得到它的工作。 我把它放在我的package.json文件中,然后在整个NPM中安装它,然后在代码中要求它像var tablesort = require('tablesort'); 。 主要的问题在于随附的模块。 在github项目中,它们是这样要求的: <script src='tablesort.number.js'></script> 。 我如何将这种types的代码转换为节点/需要友好的代码来加载所有这些模块,并让我对表格进行sorting? 我不知道如何让这个tablesorter与nodejs应用程序运行。

既然你使用了Browserify ,你应该没问题。

TableSort库在其源代码中具有CommonJS兼容导出 。 添加

 var TableSort = require("tablesort"); 

到你的源代码应该足以将库包含到你的构build包中,并且为你提供对TableSort构造函数的引用。 该项目的自述文件甚至有这样的例子 。

然而,捆绑sorting方法也是如此,因为他们希望findTableSort原型的全局引用,然后使用其扩展方法(例如TableSort.date)进行扩展。

您可以使用Browserify-shim使CommonJS不兼容的模块CommonJS兼容。 但是,在我的快速实验中,没有切片和切片,我无法正常工作。 由于某些原因,当在文件包的子文件夹中包含文件时,browserify-shim的文件parsing失败。

我确实设法通过将sorting方法复制到我的项目文件夹来包含sorting方法。 我做了一个Gist演示 ,包括一个shimmedsorting方法。 克隆它,运行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')