vue-cli基础配置及webpack配置修改的完整步骤


Posted in Javascript onOctober 20, 2019

脚手架

脚手架帮我们帮我们把 webpack 等相关的配置都处理好,我们只需要基于脚手架快速构建一个项目即可(项目中一定包含webpack的相关配置)

vue脚手架  vue-cli

我们使用任何东西第一步都是安装

1.安装脚手架(一般安装在全局)

//=>用npm安装
$npm install @vue/cli -g
//=>用yarn安装
$yarn global add @vue/cli

安装成功后,全局环境会生成 $vue 的可执行命令,我们可以基于 $vue --version 来查看版本号,看是否安装成功

2.创建工程化项目

$vue create [项目名称](要遵循npm包的名称规范:数字或者小写字母)

vue-cli基础配置及webpack配置修改的完整步骤

第一项是我之前创建保存的配置,如果是第一次创建就有第二项和第三项

  • default (babel,eslint) :选择默认配置项(后期自己安装需要的模块和进行配置)
  • Manually select features :手动选择配置项

如果选择默认这篇文章就没有意义了,我们选择手动选择配置项

vue-cli基础配置及webpack配置修改的完整步骤

这里选择脚手架里的webpack配置,空格键是选择,我选择了以上这些项,如果有需要自行添减

  • babel(babel-preset-vue-app):babel-preset-env最新的ECMAScript功能、转换Vue JSX转换generator和async/await等
  • Router :Vue官方的路由管理器
  • Vuex :Vue中实现公共状态管理的插件 (处理组件之间的信息通信)
  • Css Pre-processors :CSS 预处理器(SASS/LESS/Stylus)
  • Linter / Formatter :eslint 语法检测
  • Unit Testing :单元测试
  • E2E Testing :端到端测试

vue-cli基础配置及webpack配置修改的完整步骤

是否使用路由器的历史模式,选择Y;选择哪个CSS 预处理语言的配置规则,我用的是less根据自己需要选择

vue-cli基础配置及webpack配置修改的完整步骤

选择自动化代码格式化检测,我用的 vscode 选的 ESLint+Prettier

vue-cli基础配置及webpack配置修改的完整步骤

选择第一个可以保存配置方便下次使用

vue-cli基础配置及webpack配置修改的完整步骤

  • 第一个选项是把配置信息放到一个单独的文件
  • 第二项是放到package.json里

创建后的项目目录

vue-cli基础配置及webpack配置修改的完整步骤

src :项目开发源文件

  • main.js :打包编译的入口文件
  • App.vue :项目页面的入口文件
  • components :存放当前项目的公共组件
    • xxx.vue
  • assets :一般存放项目中需要引入的静态资源文件
    • xxx.png
    • xxx.css

public

  • index.html :当前项目的主页面,我们最后把所有在src中写的内容,通过webpack、vue编译渲染,最后呈现在index.html中的#app容器中
  • xxx.xx :有些时候我们的某些资源可能要单独在index.html就引用了,将它放在此文件夹下,但是开发时除了这样的资源,其余的都建议放在src文件夹中

开发模式下我们基于下面这个命令,启动一个本地服务,把基于webpack编译后的内容预览

$npm run serve 或者 $yarn serve

生产模式下,把写好的内容进行编译打包,最后部署到服务器上

$npm run build 或者 $yarn build

vue-cli的其他命令

$vue inspect 查看当前项目默认的webpack配置信息
$vue add [plugin] 在当前项目中安装插件

$vue ui :以图形化界面创建和管理项目

会打开一个浏览器窗口,并以图形化界面将你引导至项目创建的流程

vue-cli基础配置及webpack配置修改的完整步骤

$vue create --help :可以查看vue中的命令

vue-cli基础配置及webpack配置修改的完整步骤

vue-cli的一点深入

创建项目后,默认的配置中已经把,例如:less/sass 等规则配好,如果我们的项目中需要使用less等,无需配置规则,只需要安装对应的模块和加载器即可

$yarn add less less-loader -D

<script>
  impoer './xxx/xxx.xx' //=>导入需要的模块
</script>

<style lang="less">
  ...../
</style>

修改默认的webpack配置

需要在根目录中创建 vue.config.js 文件,在这个文件中修改相关配置,下面代码就是修改webpack的相关配置

module.exports = {
	//=>process.env.NODE_ENV:环境变量中存储的是开发环境还是生产环境
	publicPath: process.env.NODE_ENV === 'production' ? 'http://www.xxx.cn/' : '/',
	//=>outputDir
	//=>自定义目录名称,把生成的JS/CSS/图片等静态资源放置到这个目录中
	assetsDir: 'assets',
	//=>关闭生产环境下的资源映射(生产环境下不在创建xxx.js.map文件)
	productionSourceMap: false,
	//=>设置一些webpack配置项,用这些配置项和默认的配置项合并
	configureWebpack: {
		plugins: []
	},
	//=>直接去修改内置的webpack配置项
	chainWebpack: config => {
		//=>config:原始配置信息对象
		config.module
			.rule('images')
			.use('url-loader')
			.loader('url-loader')
			.tap(options => {
				options.limit = 200 * 1024;
				return options;
			});
	},
	//=>修改webpack-dev-server配置(尤其是跨域代理)
	devServer: {
		proxy: {
			//请求地址 /user/add
			//代理地址 http://api.xxx.cn/user/add
			"/": {
				changeOrigin: true,
				target: "http://api.xxx.cn/"
			}
		}
	},
	//=>多余1核cpu时:启动并行压缩
	parallel: require('os').cpus().length > 1
  }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js 剪切板的用法(clipboardData.setData)与js match函数介绍
Nov 19 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
JavaScript学习笔记之惰性函数示例详解
Aug 27 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
vue设置导航栏、侧边栏为公共页面的例子
Nov 01 Javascript
vue ssr+koa2构建服务端渲染的示例代码
Mar 23 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
详细谈谈JavaScript中循环之间的差异
Aug 23 Javascript
关于Vue中axios的封装实例详解
Oct 20 #Javascript
JavaScript相等运算符的九条规则示例详解
Oct 20 #Javascript
Vue.js下拉菜单组件使用方法详解
Oct 19 #Javascript
vue实现二级导航栏效果
Oct 19 #Javascript
vue.js实现二级菜单效果
Oct 19 #Javascript
vue实现多级菜单效果
Oct 19 #Javascript
vue.js实现三级菜单效果
Oct 19 #Javascript
You might like
PHP在线书签系统分享
2016/01/04 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php PDO异常处理详解
2016/11/20 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
JS去掉字符串中所有的逗号
2017/10/18 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
PyCharm设置护眼背景色的方法
2018/10/29 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Python有参函数使用代码实例
2020/01/06 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
党课培训主持词
2014/04/01 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
大学生社会实践评语
2014/04/25 职场文书
文艺晚会策划方案
2014/06/11 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技