Vue组件库,无需打包支持包或编译scss文件

Posted

技术标签:

【中文标题】Vue组件库,无需打包支持包或编译scss文件【英文标题】:Vue component library without packing the supporting packages or compiling scss files 【发布时间】:2020-10-06 17:15:41 【问题描述】:

我的任务是弄清楚如何发布我的团队正在开发的组件库。这些组件将被公司内部的各种内部应用程序使用。我有以下限制:

该库将作为 npm 包从内部本地使用 存储库。 (这部分我已经想通了) 组件应该是 使用 typescript 接口 (*.d.ts) 引用编译为 javascript 包内。 不应使用第三方包(包括 Vue) 被捆绑进来。相反,最好有依赖的 npm 添加组件时和 npm i 之后添加到项目的包。 编译后的 css 包应该包含在包中,但是 需要时应在项目中单独引用。 构成组件样式的原始 scss 文件应为 包含在包中,因此它们可以捆绑到项目的 构建期间的现有 scss。

我已经查看了 vue-cli-service build --target lib 来完成此操作,但它似乎将所有内容打包并打包。

我问的可能吗?它是反模式吗?有替代品吗?我不知道从哪里开始。

【问题讨论】:

【参考方案1】:

vue-cli-service build --target lib 的方向是正确的,这正是您所需要的。它将您的条目.vue 文件捆绑为一个组件,然后此捆绑包成为您的package.json 的入口点。它不包含 Vue 库(文档中对此进行了说明),我认为默认情况下它在 dist 文件夹中的单独文件中配置为 extract the CSS。 我希望这会有所帮助。

【讨论】:

尼古拉,感谢您的回复! --target-lib 不也捆绑依赖的 npm 包吗? 是的,确实如此,dependencies 中的所有已安装包都是内部依赖项,它会从中提取(treeshakes)所需的代码,然后将其添加到最终包中。也许 Webpack 可以配置为将某些依赖项视为外部依赖项。 无赖。这与我想要的相反:(我需要将我的打字稿编写成 javascript 而不包括依赖库。相反,我想引用部署包附带的 package.json 文件中的依赖项。 看看这个答案,我还没有尝试过,但它似乎是我们需要的 -> ***.com/questions/51571579/… 我的一些组件也需要这样的东西。 这已被取消优先级,因此我无法在下一个 sprint 之前继续使用它。预计几周后会收到我的来信。

以上是关于Vue组件库,无需打包支持包或编译scss文件的主要内容,如果未能解决你的问题,请参考以下文章

vue2 组件库开发记录-搭建环境(第二次架构升级)

vue 组件库 ant-design、quasar、element-ui 按需加载和主题重置

vu静态资源打包放到cdn

减少打包组件vue.config.js——Webpack的externals的使用

# Vue 项目打包js库组件库打包使用

如何在 vue js 组件中使用 scss 文件?