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

How to require additional modules in node.js app

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

您可以从here下载tablesort.js到您的目录,然后 将此添加到文件中:

  module.exports =  Tablesort;

然后,如果你想要一个特定的表排序,例如"number"。你应该从 here

下载 tablesort.number.js

然后,您应该将此更改添加到 tablesort.number.js

    var Tablesort= require('./tablesort.js')

    module.exports =  Tablesort;

最后,在你的文件中你使用这个:

var tablesort = require('./tablesort.number.js')

开始,你应该没事了。

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

var TableSort = require("tablesort");

您的源代码应该足以将库包含到您的构建包中,并为您提供对 TableSort 构造函数的引用。该项目的 README 甚至 has that example.

然而,对于捆绑的排序方法来说情况并非如此,因为他们希望找到对 TableSort 原型的全局引用,然后他们使用其扩展方法对其进行扩展,例如TableSort.date.

您可以Browserify-shim使与 CommonJS 不兼容的模块与 CommonJS 兼容。但是,在我的快速实验中,如果不进行一些切片和切块,我将无法使其正常工作。出于某种原因,当将文件包含在包的子文件夹中时,browserify-shim 的文件解析失败。

我确实设法通过将排序方法复制到我的项目文件夹中来包含它们。我做了一个 Gist demo 包括一个垫片排序方法。克隆它,运行 npm install && npm run build,然后在浏览器中打开 index.html