首页 > 编程知识 正文

cli.vuejs(clivuejsorg)

时间:2023-12-06 16:47:13 阅读:312631 作者:DSMR

本文目录一览:

  • 1、在vue-cli3.0中配置webpack
  • 2、一篇文章说清 webpack、vite、vue-cli、create-vue 的区别
  • 3、VueCLI3打包优化--抽离依赖包
  • 4、Vue兼容ie9+
  • 5、Vue项目打包发布至npm
  • 6、Vue CLI内网安装(禁止运行vue指令解决方案)

在vue-cli3.0中配置webpack

在vue-cli3.0中,对各种配置文件进行了合并,若要进行webpack相关配置,需要在项目根目录下新建vue.config.js文件

在 vue.config.js 中的 configureWebpack 选项提供一个对象:

提示:有些webpack设置选项是基于vue项目设置的,为了保证vue可以正常工作,某些webpack的配置需要遵从vue提供的配置选项,例如

如果你熟悉webpack,你已经可以开始配置项目了

扩展:链式操作---jquery那般的链式书写方式

官方文档:

一篇文章说清 webpack、vite、vue-cli、create-vue 的区别

先看这个表格:

是不是有了一个整体的感觉?我们再来详细的看一下。

官网:

vue-cli 是 Vue 早期推出的一款脚手架,使用 webpack 创建 Vue 项目,可以选择安装需要的各种插件,比如 Vuex、VueRouter等。

vue-cli 用于创建 vue2 的项目;

@vue/cli 用于创建 vue3 的项目,当然也支持 vue2。

使用起来还是比较繁琐的,首先要安装脚手架,然后使用 vue create hello-world 创建项目,具体的就不介绍了。

官网:

create-vue 是 Vue3 的专用脚手架,使用 vite 创建 Vue3 的项目,也可以选择安装需要的各种插件,使用更简单。

然后我们可以选择需要的各种插件:

官网:

使用 vite 不仅可以创建 vue 的项目,而且可以创建 react 等项目,只是需要手动安装第三方插件,有点麻烦。

目前支持的模板预设如下:

官网:

rollup 是一种打包工具,特点就是,打的包非常精简,体积小。

官网是英文的,中文资料也比较少,不过好在常规用法可以参考 vite的官网。

尤雨溪在知乎的一次回答( )里提到:

webpack 是一个全能选手,啥都能干,只是有点复杂,对新手不太友好。

Rollup 是后起之秀,打包更简洁。

vite 把 rollup 变成了“开袋即食”,便于新手入门。

create-vue 基本取代了 vue-cli,除非你想创建 vue2 的项目。

所以,想创建一个 vue3 的项目,首选 create-vue,非常方便快捷,建立的项目也可以统一风格。

VueCLI3打包优化--抽离依赖包

项目开发中,使用了很多依赖包,如 Vue 、路由管理 Vue-router 、状态管理 Vuex 、UI组件库( ElementUI 、 Vant )、图表( echarts )等。打包构建,发现有一些包体积过大,会影响首页加载速度。如下所示:

从上图的分析包中,可以将以下插件抽离:

需要删除的依赖包

VueCLI3自带了 webpack analzer ,可通过如下命令即可生成分析包内容,在 dist/report.html

更多请查看:

减少打包体积、加快打包速度,常规的优化有以下两种:

按需加载是通过只引用使用的组件来减少体积,这就会有一个问题:如果项目重度依赖第三方插件(如 ElementUI 、 vant ),那么此方案将无法减少打包的体积。

这里选择CDN的方式, 配置流程 :

可根据环境变量,仅在线上采取使用CDN,开发环境直接使用npm依赖包即可。

进行包分离以后,打包结果:

vue.config.js 的pages为:

修改如下的地方:

外部扩展(externals)

使用webpack的externals来指定echarts无法减少包的大小

vue-cli利用webpack-bundle-analyzer分析构建产物

Vue兼容ie9+

首先说明一下我在这里使用的是vue-cli3创建的项目,不同版本的配置可能略有差异,不过一切以官方文档的为准,在这里先贴出vue-cli文档链接,因为文档说明还是挺详细的。

进入正题,这里说明一下本文实现兼容应用的是 Babel7.4.0 之前的版本,7.4.0版本前转码主要应用到的工具还是 @Babel/polyfill ,由于Babel默认只转换新的javascript语法,不支持新的Api(如Set,Map,Promise),所以还需要引入 cors.js ,这个项目中没有使用到Generator函数所以不需要引入 regenerator-runtime ,首先用vue-cli3创建的项目package.json文件中有 browserslist 这个字段或是在项目根目录有一个 .browserslistrc 文件,这里是用来指定可用浏览器的范围,关于指定浏览器版本配置可以参考这里 。顺便贴出目前我的配置。

可以在终端运行 npx browserslist 查询当前已选择了那些浏览器

一个用vue-cli创建的项目中默认会使用 @vue/babel-preset-app ,我们可以在node_modules @vue babel-preset-app package.json文件中看到配置了core.js,

没有在entry入口文件进行配置@babel/polyfill网页打开发现很多es6新的Api是不支持的。

此文章作为学习和记录,如果有问题或是不对的地方欢迎各位大佬指出,感激不尽!

Vue项目打包发布至npm

新建一个项目,在根目录创建两个文件夹 packages 和 examples

将原项目中 components 下所有组件复制到新项目的 packages 目录下,如果有字体图标,将字体图标也一并放到 packages 目录下

packages/index.js

main.js

必须在 new Vue() 方法前调用 use 方法注册插件

Vue CLI提供了将Vue项目打包成库的命令,官方文档地址

package.json

在 package.json 中新增一条打包命令,其中 packages/index.js 指定打包入口文件

默认情况下该命令不会将 Vue 打包进去,因为任何引用我们库的Vue项目都默认包含 Vue ,如果使用文件或者CDN方式引入我们的库,则需要使用者手动引入 Vue 。可以通过添加 --inline-vue 参数来内置 Vue 。 --name 来指定打包后的名字。

运行打包命令

package.json

其中 name 不能在 npm 上已经存在, private 必须设置为 false ,否则发布会失败, main 指定的是 import 我们的库时默认导入的文件

如果包的名字已经被其他人使用了,可以声明所有者信息来避免重名冲突。有两种方式来实现,第一种,手动修改 package.json ,将 name 修改为 @username/package-name 。第二种,推荐在新项目中使用, npm init --scope==username 。这个时候,发布包的命令也要进行修改

.npmignore

定义哪些文件在上传到npm时会被忽略。一般而言, examples 是包含测试的文件, packages 是源码, public 是一些静态文件,这些对库的使用者来说意义不大,可以不上传到npm

如果使用了第三方npm源,必须改回npm官方源

切换回官方源命令为 nrm use npm

登录

发布

取消发布

发布时遇到错误时可能是以下原因导致的:

安装

全局导入

使用组件

Vue CLI内网安装(禁止运行vue指令解决方案)

1、Vue cli简介:

Vue cli是一个基于Vue.js 进行快速开发的完整系统,Vue CLI 致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样你可以专注在撰写应用上,而不必花好几天去纠结配置的问题。与此同时,它也为每个工具提供了调整配置的灵活性,无需 eject。

cli(@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue命令。它可以通过vue create快速搭建一个新项目,或者直接通过vue serve构建新想法的原型。你也可以通过vue ui通过一套图形化界面管理你的所有项目。

2、 Vue cli安装

npm install -g @vue/cli

安装之后,运行vue指令,遇到以下问题:由于公司内网执行策略限制,会禁止运行vue指令。

解决方案及步骤如下:

第一步:执行Set-ExecutionPolicy RemoteSigned更改执行策略。

第二步:如果没有权限更改全局的执行策略,加上-Scope CurrentUser后再次更改(Set-ExecutionPolicy RemoteSigned -Scope CurrentUser),并为ExecutionPolicy参数提供值为:RemoteSigned。

第三步:执行策略更改完成后,成功运行vue指令。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。