vue.js - 如何将 VueJS 3 Hello World 应用程序作为库提供?
问题描述
我在用着:
- 节点JS:16.6.1
- VueJS:3.0.0
- Vue CLI:4.15.13
使用 CLI,我设置了“hello world”应用程序并尝试使用以下lib
目标构建它:
npx vue-cli-service build --target lib --name helloworld ./src/components/HelloWorld.vue --mode production
构建工作正常并在./dist
目录中生成内容。从常规 HTTP 服务器访问它,我希望 demo.html 文件能够正确呈现组件,但事实并非如此。 抛出一个 JS 错误:
Uncaught ReferenceError: vue is not defined
控制台警告 Vue 正在开发模式下运行,但 CLI 默认应该处于生产模式。我错过了什么吗?
我是第一次尝试 VueJS,并尝试了解如何从组件中生成一个库,然后可以在其他项目中使用。
解决方案
Vue CLI 4.5.13 不会创建与 Vue 3 兼容的演示。例如,4.5.13 版本仍然使用 Vue 2 初始化demo.html
。版本 5.x修复了这个问题。
安装@vue/cli
5.x 来创建 Vue 3 库(@next
目前是5.0.0-beta.3
):
npm i -g @vue/cli@next
控制台警告 Vue 正在开发模式下运行,但 CLI 默认应该处于生产模式。我错过了什么吗?
默认情况下,库构建外部化vue
(它不与库捆绑)。相反,demo.html
从 CDN 中提取它:
<script src="https://unpkg.com/vue"></script>
这解决了https://unpkg.com/vue@2.6.14/dist/vue.js
(截至今天的最新版本),这是一个开发版本。如果您更喜欢生产版本,请将src
URL 更改为缩小版本:
<script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
推荐阅读
- python - 在 Django rest 框架中根据请求自动计算并返回一个字段
- c# - WPF DragDrop Adorner 性能不佳/滞后
- javascript - 图表上的 Nivo OnClick 显示元素
- java - 为什么我的维基百科爬虫在使用 CachedThreadPool 时会失败,而在使用 FixedThreadPool 时却不会?
- .htaccess - .htaccess 301 使用带有分页的正则表达式重定向
- html - 为屏幕阅读器设置难度图标
- javascript - Eclipse 2021-03 中的 JavaScript 保存操作?
- reactjs - 导航器只能包含 'Screen'、'Group' 或 'React.Fragment' 作为其直接子级
- ajax - Google translate API - 使用 ajax 的多个查询
- android - Android 播放 url 重定向/要求他们登录,例如内部测试邀请