定制Javascript库的“现代”方式

定制Javascript库的“现代”方式,javascript,Javascript,这里有一只恐龙。在过去的好日子里,定制JS库非常容易。我会下载非精简版本,把这个吸盘放到/js文件夹中,对代码做必要的修改,并将其嵌入到html中。像这样: <script src="Sortable.js"></script> 撇开讽刺不谈,我有一个严肃的问题:在现代设置中定制库时,当然,我不会更改最终编译版本,因为它会在新版本中被覆盖。我也不会更改node_modules文件夹中的文件,因为每次更新都会覆盖这些文件。那么最好的方法是什么呢 有些东西告诉我我必须分

这里有一只恐龙。在过去的好日子里,定制JS库非常容易。我会下载非精简版本,把这个吸盘放到/js文件夹中,对代码做必要的修改,并将其嵌入到html中。像这样:

  <script src="Sortable.js"></script>
撇开讽刺不谈,我有一个严肃的问题:在现代设置中定制库时,当然,我不会更改最终编译版本,因为它会在新版本中被覆盖。我也不会更改node_modules文件夹中的文件,因为每次更新都会覆盖这些文件。那么最好的方法是什么呢


有些东西告诉我我必须分叉库,将分叉放在npm上并导入分叉。我不想相信。这真的是我定制2行代码所必须做的吗?

如果我有这样的任务,我宁愿下载源代码,进行更改,构建源代码,并使用以下方法将其作为依赖项安装:


但是很难用这些更改来更新包。这就是为什么你可以考虑使用类似或使用纱线的东西,它可以让你在理论上与你的包分开,我以前从未使用过它。

< P>如果我有这样的任务,我宁愿下载源代码,做修改,建立它,并将它安装为一个依赖项,使用:
但是很难用这些更改来更新包。这就是为什么你可以考虑使用类似或使用纱线的东西,这可以让你在理论上把你的变化与包装分开,我以前从未使用过。

我很同情你的讽刺,甚至更长的时间。然而,新模式有很多优点,但您想要做的是缺点之一。如果您正在修复某个东西,那么将其分叉,修复,将npm指向git repo,使用该修复程序无需自己发布该修复程序,向作者发出拉取请求。如果修复被接受,则将npm重新指向原始包。如果它不是修复,那么它实际上取决于包的性质和更改。举个例子会很有帮助。对我来说,我会选择一个具有我所需要的大多数功能的库,这样以后我就不必进行大量的定制。对于小型定制,我可以使用挂钩。在SortableJS的情况下,假设您想在将元素放入列表时进行额外处理,您可以将自己的处理程序设置为对象,例如{onAdd:yourHandlerFunction}我非常同情您的讽刺,因为您的牙齿更长了。然而,新模式有很多优点,但您想要做的是缺点之一。如果您正在修复某个东西,那么将其分叉,修复,将npm指向git repo,使用该修复程序无需自己发布该修复程序,向作者发出拉取请求。如果修复被接受,则将npm重新指向原始包。如果它不是修复,那么它实际上取决于包的性质和更改。举个例子会很有帮助。对我来说,我会选择一个具有我所需要的大多数功能的库,这样以后我就不必进行大量的定制。对于小型定制,我可以使用挂钩。在SortableJS的情况下,假设您希望在将元素放入列表时进行额外处理,您可以将自己的处理程序设置为对象,例如{onAdd:yourHandlerFunction}
import Sortable from 'sortablejs/modular/sortable.core.esm.js';
{
  "name": "project",
  "dependencies": {
    "sortablejs" : "file:../path/to/sortablejs/bin"
  }
}