使用 NPM 管理文件依赖关系

Manage file dependencies with NPM

我正在与一个中型团队一起开发大型前端应用程序。到目前为止,我们一直在使用 requirejs 和 AMD 模块来管理我们的 ~500 文件项目。出于各种原因,我们最近决定迁移到 commonjs 并使用 NPM 作为我们的包管理器。这是我的问题:

如何将一个随机的、单独的框架文件(又名 jquery 插件)合并到我们的 package.json 中?

例如我们使用这个随机jquery颜色选择器https://github.com/laktek/really-simple-color-picker/blob/master/jquery.colorPicker.min.js

但是 github 上的 repo 没有 package.json 所以使用 NPM 的内置 git 令人敬畏是行不通的。那么我应该怎么做呢?我一直在尝试使用它的 'file:../../' 语法,但我认为它希望我指向一个节点模块文件夹,但我不确定如何最好地设置它。

奖金问题

如何处理 "shims",例如我希望我的观点引用 "knockout" 但实际上引用的文件本身包含 knockout 并添加了我们所有的插件和自定义优点,然后重新导出 knockout

感谢任何帮助!

How do I incorporate a random, lone framework file (aka a jquery plugin) into our package.json?

首先,提交一个问题并要求维护者支持一些包管理器。 npm 会很好,但即使是 bower 也可以。抓取随机文件的旧时代已经过去了。

其次,如果作者不遵守,请考虑分叉他们的代码并将其发布到 npm 或 bower 供 them/for 您使用。考虑到 npm 和 bower 中至少有数千个可用的软件包,我认为这是反对在我的项目中使用该软件的主要危险信号。

第三个选项只是下载他们的文件并将其放入您的 git 存储库中,然后通过 the browser field in package.json 参考它:

"browser": {"colorPicker": "./thirdParty/jquery.colorpicker.js"}

How do I deal with "shims", e.g. I want my views to reference "knockout" but in reality be referencing a file that itself includes knockout and adds all of our plugins and custom goodness and then re-exports knockout

这正是 browserify-shim 在用作 browserify 转换时所做的。

有一点学习曲线 and/or 处理所有生态系统和 hack 的挫败感,但最终我已经能够使用正确的 browserify 和 browserify-shim 配置工作几乎所有的东西,包括jquery、jquery 插件、angularjs 以及几乎所有来自 bower 的软件包。

如果您遇到困难,post一个单独的问题,详细说明您是如何遇到困难的。