外部依赖在哪里存在于vanilla JS Web组件中?

问题描述 投票:3回答:1

我正在尝试为项目使用Web组件 - 主要是由属性驱动的自定义元素,理想情况下由<link rel="import">导入。

这就是问题所在:我无法找到关于在哪里粘贴我的组件依赖的任何外部库的确凿指导,例如moment.js甚至是jQuery。

我见过的大多数组件示例都严格使用vanilla JS。当他们使用外部库时,他们似乎经常使用Bower或npm删除它们并在组件的HTML中显式引用它们:

<script type="text/javascript" 
src="/bower_components/jquery/dist/jquery.min.js></script>

这些天我更习惯使用webpack捆绑依赖项,所以这看起来有点奇怪。

我的问题:在组件目录中包含每个组件的库依赖项,或者在项目级别有一个中央node_modules文件夹,它被认为是更好的形式吗? webpack如何适应这个?

javascript html web-component
1个回答
3
投票

在项目级别拥有一个中央node_modules文件夹会更好。大多数人使用Webpack将代码与其依赖项捆绑在一起。他们使用requireimport为每个组件提供模块。

a.component.js

import React from 'react'
import $ from 'jquery'

b.component.js

import React from 'react'

app.js

import A from 'a.component.js'
import B from 'b.component.js'

Webpack将有一个“条目”:app.js并编译它outputapp.min.js

为什么?

  • 使用npm管理(更新,删除,添加)依赖项更容易。
  • 浏览器将加载一个文件而不是多个外部文件。

外部信息:

https://webpack.js.org/concepts/

https://www.quora.com/Why-use-Bower-when-there-is-npm

© www.soinside.com 2019 - 2024. All rights reserved.