【发布时间】:2016-08-10 16:19:26
【问题描述】:
我想构建一个复杂的 Web 组件:
- 我可以在我的旧网站(或任何其他网站)中使用
- 它可以在我的网站使用 Angular/Angular2/React/Jquery 等构建的情况下使用...
- 我可以使用任何技术来构建它 Angular/Angular2/React 等...
- 避免依赖和版本冲突(即我的组件是用 Angular 1.5.6 构建的,而实施网站有 Angular 1.4.7)
使用 NPM 模块可以解决这个问题吗(版本控制、依赖等)?
编辑:(示例)
例如,我会通过 npm 要求我的组件 它具有依赖项(需要)我选择的框架(即角度 1.5.6)
在这种情况下,我的组件代码不会使用来自 NPM 的依赖项(无论站点使用什么)?
【问题讨论】:
-
要使其真正与框架无关,将您的组件制作为 Web 组件而不是 Angular 组件不是很明智吗?这样您就不必为使用您的组件的每个站点下载整个 Angular。 MDN 关于 Web 组件的文章在这里:developer.mozilla.org/en-US/docs/Web/Web_Components
-
我不想依赖现有的站点技术。例如,我希望可以选择使用 angular2 编写新组件。请注意,如果网站将其框架更新为 angular2,我不希望出现一些版本控制问题。知道如何防止它们发生吗?
-
这就是我想说的——如果您不希望它依赖于现有的站点技术并且您不希望出现冲突的版本控制问题,那当然是仅从 html/css/js 制作组件会更容易,没有框架? NPM 似乎无法在 package.json 文件中安装一个依赖项的多个版本,因此很难避免版本控制问题。 Vanilla Web 组件完全独立于网站,听起来就像您正在寻找的一样,即使需要额外的工作来使您的组件不使用 Angular。
-
我已经编辑了这个问题。我正在尝试找到一种不使用 vanilla js 作为我的组件的方法。
标签: reactjs angular npm dependencies web-component