使用NPM管理文件依赖性

时间:2015-02-05 23:02:53

标签: javascript jquery node.js npm package.json

我正在与一个中型团队合作开发一个大型前端应用程序。到目前为止,我们一直在使用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 awesomeness并不起作用。那我该怎么做呢?我一直试图使用它的文件:../../&# 39;语法,但我认为它要我指向一个节点模块文件夹,我不知道如何最好地设置它。

奖金问题

我如何处理"垫片",例如我希望我的观点可以参考"淘汰赛#34;但实际上是引用一个本身包含淘汰赛的文件,并添加我们所有的插件和自定义优点,然后重新导出淘汰赛

感谢任何和所有帮助!

1 个答案:

答案 0 :(得分:2)

  

如何将随机的,单独的框架文件(也称为jquery插件)合并到package.json中?

首先,提出问题并要求维护者支持某个包管理器。 npm会很好,但即使是凉亭也会这样做。抓住随机文件的旧时代已经很久没有了。

其次,如果作者不遵守,请考虑分发他们的代码并将其发布给npm或bower为他们/为您。考虑到npm和bower中至少有一个可用的数千个软件包,我认为这是在我的项目中使用该软件的一个重要标志。

第三个选项只是下载他们的文件并将其放入你的git存储库并通过the browser field in package.json沿着这些行引用它:

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

我如何处理“垫片”,例如我希望我的观点能够引用“淘汰赛”,但实际上是引用一个本身包含淘汰赛的文件,并添加了我们所有的插件和自定义优点,然后重新导出淘汰赛

这正是browserify-shim用作browserify转换时的功能。

有一些学习曲线和/或挫折处理所有生态系统和黑客,但最终我已经能够使用正确的browserify和browserify-shim配置几乎所有工作,包括jquery,jquery插件,angularjs,以及几乎任何来自凉亭的包裹。

如果您遇到困难,请发布一个单独的问题,详细说明您的陷阱。