能用 vue 写个独立的 js 文件供第三方用么?

2022-03-09 14:53:55 +08:00
 snoopyhai

今儿拿到个需求,写个 js 库,供第三方使用。

习惯 vue 了,突然就把我整不会了。。

大致是这样,写个 js 库,里面封装好一个小界面和交互。比如一个华丽的 mp3 播放器。 用户直接引入 js ,然后实例化配置,就会在指定的 dom 中插入这个播放器,并使用。

但是已经习惯了 vue 了,是否能用 vue 写这么个东西。最后脱离 vue 成为一个单文件库。

脑子空白一片,没思路。

4048 次点击
所在节点    Vue.js
30 条回复
narmgalaxy
2022-03-09 20:04:28 +08:00
@snoopyhai
这个是可以的。
svelte 是可以方便的做出 web Components
MrTLJH
2022-03-09 21:34:22 +08:00
纯 js 呗,不会原生 js 了么,何必用 vue
Envov
2022-03-09 23:19:17 +08:00
vuecli 支持发布指定入口文件,还支持命名空间,你只要在入口文件导出一个函数,函数接受 dom 对象,new vue 的 el 接受该 dom 或者直接 mount()后得到$el 就是响应式的视图,将$el 挂在 dom 的子里面

这个过程中 vue 也参与了构建,那边可以直接 script 引入
Buges
2022-03-10 01:38:37 +08:00
换 svelt 最合适。vue/react 都得内嵌一个完整的运行时。
ccyu220
2022-03-10 08:39:36 +08:00
参考那些嵌入的天气插件。如果是 PC 网页,其实一个 Vue 的运行时并没有多大。
chnwillliu
2022-03-10 10:31:15 +08:00
运行时让使用者引入,那你的库就是个 Vue 组件库,参考其他 Vue 组件库写法就行。

运行时包括在库里,那就把你写的组件库套一层 Vue App 初始化的代码,向外暴露一个普通函数就行。
lin07hui
2022-03-10 11:37:13 +08:00
npm create vite@latest my-vue-app -- --template vanilla
lin07hui
2022-03-10 11:38:06 +08:00
npm create vite@latest my-vanilla-ts-app -- --template vanilla-ts
lblblong
2022-03-10 17:12:48 +08:00
试试 svelte ,看看我这个: https://github.com/lbl-tools/lbl-toast
AlphaTr
2022-03-11 12:29:43 +08:00
vue-cli 也有库模式,支持 vue 的 inline 打包,应该可以的

vue-cli-service build --target lib --inline-vue

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/839147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX