Vue及Vue cli相关技巧
快速轻便的前端开发工具,本文档最低版本为vue cli 4.1.2。
本地文件夹http服务器http-server
已经安装nodejs的客户端,可以通过此方法启动http访问本地文件夹,好处是可以方便实现跨域和防止跨域(google表现的同源策略)等,避免每次要访问一点静态资源总要去配置IIS或Apache,本工具官方网址https://www.npmjs.com/package/http-server。
完整教程-> https://www.z01.com/blog/products/3526.shtml
vue安装和卸载
npm和yarn包的管理与移除
删除全局安装的npm包
方法一 : 使用命令。
方法二: 直接找到对应包删除。
C:\Users\自己用户的文件夹\AppData\Roaming\npm下,将对应的包删除即可。
查看本地安装的所有npm包
各位肯定安装过很多的全局npm包。就是 npm install xxx -g,这样的,时间一久,完全记不得自己装过那些东西,有时你想看一下或者删除一些无用的包,下面就记录一下该操作。
常用vue-cli命令
一些常用vue-cli命令
vue-cli-service build 会在 dist/ 目录产生一个可用于生产环境的包,带有 JS/CSS/HTML 的压缩,和为更好的缓存而做的自动的 vendor chunk splitting。它的 chunk manifest 会内联在 HTML 里。
这里还有一些有用的命令参数:
--modern 使用现代模式构建应用,为现代浏览器交付原生支持的 ES2015 代码,并生成一个兼容老浏览器的包用来自动回退。
--target 允许你将项目中的任何组件以一个库或 Web Components 组件的方式进行构建。更多细节请查阅构建目标。
--report 和 --report-json 会根据构建统计生成报告,它会帮助你分析包中包含的模块们的大小。
在vue-cli项目中使用bootstrap
虽然Vue插件库中有一个bootstrap-vue的插件,但是此插件并不会带来完整的bootstrap体验,所以需要用本方法进行全局引用(zico方法引用相同)
如果cli版本小于3:需要配置webpack.base.conf.js
在vue-cli 3版本中,需要在根目录中添加一个文件vue.config.js,然后写入下面配置:
如果cli版本小于3:需要配置webpack.base.conf.js
最后在main.js中引入:
Vue 中 error处理:no-mixed-spaces-and-tabs
在处理vue时,常会报“no-mixed-spaces-and-tabs”的错,这是提示我们禁止使用 空格 和 tab 混合缩进;大多数代码约定要求使用空格或 tab 进行缩进。因此,一行代码同时混有 tab 缩进和空格缩进,通常是错误的;
解决方法是删除报错的地方的空格,再进行编译,成功通过。
不能更改文件名,发布时报错Error: No module factory available for dependency type: CssDependency
vue cli4 的 vue ui的发布界面中,点击任务-bulid发布报错Error: No module factory available for dependency type: CssDependency
,而如果直接使用npm run build
则不会报错,但是可以发布出来。
这样发布出来的文件有一个问题,如将index.html改为test.html,其它目录全不变,但依然不能访问,原因是启用了hostory模式的路由,修改方法:将路由改为默认的hash模式,一般是定义\src\router\router.js下的文件:
重装安装Npm依赖的方法
有两种方法,前者是重装,后者是删除后重装
@babel/polyfill的使用
Babel 包含一个polyfill 库。这个库里包含 regenerator 和 core-js.这个库将会模拟一个完全的 ES2015+ 的环境。
这意味着你可以使用 新的内置语法 比如 promise 或者 WeakMap, 静态方法比如Array.from 或 Object.assign, 实例方法 比如 Array.prototype.includes 和 generator 函数。
SIZE:由于是在source code 前运行的,所以安装的时候是 --save
polyfill 用起来很方便,但是你应该和 @babel/preset-env 以及 useBuiltIns option 一起用。这样在使用的时候就不会包含那些我们一般不会用到的polyfill 了。如果不这样做的话,我们还是建议你手动引入你需要的每个polyfill。
T39提案:如果你想使用一些不在 Stage 4 中的提案,@babel/polyfill 不会自动帮你引入它们。你可以从 core-js 中单独引入。
在浏览器中使用的话,直接引入@babel/polyfill 发布的文件dist/polyfill.js 就行了。
这个文件需要包含在所有你编译好的代码之前。你可以把它放在你编译好的代码之前,也可以放在一个script 标签之中。
完整示例:
引入Jquery、zico和Bootstrap
方法一:在Vue cli4中,可以直接加载BootstrapVue插件,此插件引用后,则需要使用专用的标签来使用(否则会失去相应事件属性),比如导航栏则需要写作为:
方法二:如果你对原生的html更熟悉,则可以采用手工方法,分别引入Jquery、zico和Bootstrap
上面三步完成后,就可以自由的采用原生的bootstrap代码和标准的html来写作了,直接拷贝 code.z01.com/v4官方站的代码提升开发效率。
npm安装模块遇到ENOENT: no such file or directory, rename错误
一个已经开发过程中的项目,突然要加一个组件,但无论如何 都无当安装成功,提示报错如下:
而且因为运行了错误的安装,原包也会出现问题,无法npm run serve
或build
,虽然可以用删除node_modules再重新安装npm,恢复原包,但新包怎么也安装不上。
github上有帮助:
解决方法是:删除package-lock.json
,然后运行npm i xxx
,安装成功后,再恢复package-lock.json
,虽然麻烦,但有效。