2017 年 8 月 31 日星期四

编辑器与 NPM

npm 已成为 JavaScript 库的事实上的包管理器,部分原因是它让安装软件和依赖项变得十分容易,部分原因是通过 npm 目录提供的软件数量巨大。DataTables 及其扩展可通过 npm 获得,让 DataTables 的安装和集成变得很容易,适用于任何给定的工具链/构建过程(JavaScript 世界中有许多这样的工具链/构建过程!)。

npm 非常适合分发开源软件,如 DataTables,但它并不适用于商业软件,如Editor。完整的 Editor 软件包仅提供给许可持有人,npm 并不了解这些许可信息。Editor 源代码可以放置在 npm 上进行分发,但这没有任何办法来强制执行许可 - 而 Editor 的许可费用正是让 DataTables 及其其他扩展的持续开发和支持成为可能的!

持有软件包

为了允许在 npm 工具链中使用 Editor,我们采用了以下方法:准备在 npm 上放置一个几乎什么也没有的持有软件包,在执行 npm install datatables.net-editor 时将安装此软件包。该软件包有一个后安装脚本,它将显示有关如何安装完整 Editor 软件包的信息消息。

# npm install datatables.net-editor

> node postinstall.js

DataTables Editor installation
To complete the installation of Editor, please download a licensed or trial package from
https://editor.datatables.net/download and then run the install.js script:

  node node_modules/datatables.net-editor/install.js path/to/Editor.zip

This will insert the correct licensed or trial files into your node_modules structure.

要完成安装,下载 Editor(许可版本或试用版),然后执行 node_modules/datatables.net-editor/install.js 脚本,并将其指向下载的 Editor zip 文件,详细说明在后安装消息中。该脚本会解压缩软件包,并将文件插入它们所需的用于 import editor from 'datatables.net-editor'; / require('datatables.net-editor'); 的位置,就像其他任何软件包一样。

样式库

与 DataTables 内核和其他扩展一样,还提供了 Editor 支持的样式框架的软件包,如 Bootstrap、Foundation 和 Semantic UI。与其他软件一样,这些样式集成库是通过向软件包添加后缀来定义的,例如 Bootstrap 3 的 -bs。请参阅npm 下载页面了解完整详情。

样式软件包不需要运行额外的安装脚本,主安装脚本会自动检测是否安装了任何 Editor 样式软件包,并将适当的文件从 Editor zip 软件包移到那些软件包中。

源代码控制

对于与源代码管理的集成,建议将 zip 文件提交到存储库,以便无论何时为项目的未来克隆运行 npm install,都可以轻松完成安装命令。同样的,可以使用自定义 post install 脚本来立即执行 install 命令。通过这种方式,您无需从 node_modules 提交任何内容到源代码管理中。

在理想状态下

理想情况下,此额外的步骤对于通过 npm 安装 Editor 而言不是必需的。然而,由于其商业性质并需要许可证才能使用它,我不知道有任何更好的解决方案。如果任何人对此有何改进建议,非常欢迎。与此同时,希望此帖描述了使用 npm / yarn 安装 Editor 的原因、目的和方法。

编码愉快!