【发布时间】:2018-01-09 13:33:23
【问题描述】:
我们使用 Aurelia 构建了一个小型应用程序,并希望能够将该应用程序集成到更大的代码库中。例如,可能希望在 NPM 上发布 Aurelia 应用程序,以便其他项目可以集成我们的代码。
我们如何构建/发布 Aurelia 应用程序,以便在更大的 JavaScript 应用程序中对其进行实例化?
【问题讨论】:
标签: javascript node.js npm package aurelia
我们使用 Aurelia 构建了一个小型应用程序,并希望能够将该应用程序集成到更大的代码库中。例如,可能希望在 NPM 上发布 Aurelia 应用程序,以便其他项目可以集成我们的代码。
我们如何构建/发布 Aurelia 应用程序,以便在更大的 JavaScript 应用程序中对其进行实例化?
【问题讨论】:
标签: javascript node.js npm package aurelia
通常,您不会将整个 Aurelia 应用程序发布到 NPM,而是将插件推送到 NPM。
学习如何做到这一点的最简单方法是遵循各种 Aurelia 存储库的示例。我们将代码构建成多种格式,但最重要的是 AMD 和 CommonJS(这对贵公司更重要取决于贵公司使用的工具)。构建代码后,下一步是确保您的 package.json 文件设置正确。最好复制我们在自己的仓库中所做的示例。
我将从查看对话框插件或templating-resources 插件开始。这两个都展示了如何将 Aurelia 插件发布到 NPM 的很好的示例,无论它是公共的还是私有的 npm 提要。
https://github.com/aurelia/dialog/blob/master/package.json https://github.com/aurelia/templating-resources/blob/master/package.json
这两个插件都设置为支持开箱即用的 Webpack、JSPM/SystemJS 和 Aurelia CLI。
【讨论】:
我完全同意 @Ashley 的观点,即不将大型应用程序发布到全球 NPM 注册表。它的最大优势是所有可用于构建大型应用程序的小包的简单性。
如果你觉得你有一些可重用的代码,请放入一个自己的包并发布它。
无论如何,给您一个不需要您发布完整应用程序的答案:您可以通过 NPM 在不同的应用程序中包含一个完整的存储库(这可能是您正在寻找的)。
npm install git://github.com/somegit/hubrepo.git
或直接通过package.json:
"dependencies": {
"private-repo": "git+ssh://git@github.com:somegit/hubrepo.git#v1.0.0",
}
你也可以做一些类似的事情,例如使用 JSPM。这很简单:
jspm install your-app=github:OrgOrUser/your-app@your-branch
如果您现在在导入中面临较长的相对路径,根据您的工具,您可能会对类似的东西感兴趣,例如Resolving require paths with webpack 展示了如何为相对路径设置别名。
来源/链接:
How to install a private NPM module without my own registry?
npm install private github repositories by dependency in package.json
【讨论】: