一丢丢学习之webpack4 + Vue单文件组件的应用
之前刚学了一些Vue的皮毛于是写了一个本地播放器https://github.com/liwenchi123000/Local-Music-Player,如果觉得ok的朋友可以给个star。
就是很简单,由于是第一次用Vue写小demo,所以代码写的有点蠢很裸的那种,不像大神那样一看代码组织的就很美。
但好就在于是和官网的文档写法差不多,为什么这么说呢,看接下来的就知道了。
有一次看到了别人写的应用,点进去一看惊呆了

这咋还能这么写呢?这html不用引用script吗?
然后随手在src里找到了几个其他的文件

这都是啥???
但是20行到25行很熟悉,就是文档里的。但是第24行有是个啥?(这个至今没明白,希望大佬可以指点一二),但是这个main.js和index.html跟本就没有关联啊,第21行怎么绑定到dom元素上的?
然后又随手找到了一个看起来应该很重要的文件App.vue

这写的感觉很清晰很简洁,和我一个好几百行的js文件完全不一样有木有...
所以就查了一下相关资料,才知道这是vue-cli的功劳,但是这个东西是真的劝退。。。。。。我踏马看了一下午都没搞懂这玩意杂用,于是果断放弃,网上的各种文章视频,以及各种文档根本看的我头疼,反正最后也没写出来啥玩意。反正那些教程各种复杂,网上找了个vue-cli的教程,webpack配置占了70%。
然后今天中午弄明白了怎么不使用vue-cli的情况下使用单文件组件(就是那个.vue文件)写点小东西。也就是简单的webpack + vue
-------------------------------------------------------------------------------------------------------------
1.先准备一个空文件夹
2.初始化项目
npm init
3.对当前文件夹安装webpack
// --save-dev开发环境
npm install --save-dev webpack
4.先看一下最终的目录结构
红色箭头指向的是npm或webpack自动生成的,其他的是我自己创建的

5.创建webpack.config.js
const path = require('path');
module.exports = {
// 入口文件,我们假设是单入口
entry: {
main: './src/index.js'
},
// 出口文件
output: {
path: path.resolve(__dirname, './dist'),
filename: 'bundle.js'
},
module: {
// 当你import奇怪的后缀的时候webpack是看不懂的,他只认识js,所以需要一些奇怪的loader(加载器)
// 而且这些加载器要安装,详情见底下
rules: [
{ test: /\.css$/, use: 'css-loader' },
{ test: /\.ts$/, use: 'ts-loader' },
{ test: /\.vue$/, use: 'vue-loader' },
{ test: /\.less$/, use: 'less-loader' },
]
},
devServer: {},
plugins: [],
}
/*
使用loader前请先在项目中安装对应的loader
例如:
npm install --save-dev css-loader vue-loader less-loader vue-template-compiler
npm install --save-dev ts-loader
常见loader:
1.模板:
(1)html-loader:将HTML文件导出编译为字符串,可供js识别的其中一个模块
(2)pug-loader : 加载pug模板
(3)jade-loader : 加载jade模板(是pug的前身,由于商标问题改名为pug)
(4)ejs-loader : 加载ejs模板
(5)handlebars-loader : 将Handlebars模板转移为HTML
2.样式:
(1)css-loader : 解析css文件中代码
(2)style-loader : 将css模块作为样式导出到DOM中
(3)less-loader : 加载和转义less文件
(4)sass-loader : 加载和转义sass/scss文件
(5)postcss-loader : 使用postcss加载和转义css/sss文件
3.脚本转换编译:
(1)script-loader : 在全局上下文中执行一次javascript文件,不需要解析
(2)babel-loader : 加载ES6+ 代码后使用Babel转义为ES5后浏览器才能解析
(3)typescript-loader : 加载Typescript脚本文件
(4)coffee-loader : 加载Coffeescript脚本文件
4.JSON加载:
(1)json-loader : 加载json文件(默认包含)
(2)json5-loader : 加载和转义JSON5文件
5.Files文件
(1)raw-loader : 加载文件原始内容(utf-8格式)
(2)url-loader : 多数用于加载图片资源,超过文件大小显示则返回data URL
(3)file-loader : 将文件发送到输出的文件夹并返回URL(相对路径)
(4)jshint-loader : 检查代码格式错误
6.加载框架:
(1)vue-loader : 加载和转义vue组件,这个似乎还需要安装vue-template-compiler
(2)angualr2-template--loader : 加载和转义angular组件
(3)react-hot-loader : 动态刷新和转义react组件中修改的部分,基于webpack-dev-server插件需先安装,然后在webpack.config.js中引用react-hot-loader
*/
6.在./src/创建index.js
vue.js是vue的源文件,https://vuejs.org/js/vue.js
import Vue from './assert/vue.js';
import Name from './componments/name.vue'; var vm = new Vue({
el: '#app',
data: {
msg: '你好'
},
components: {
'myname': Name,
}
});
7.在./src/components下创一个name.vue
<template>
<div><h2>{{msg}}</h2></div>
</template> <script>
export default {
data: function() {
return {
msg: 'Bob'
}
}
};
</script> <style>
h2 {
color: red;
}
</style>
8.在命令行里输入"webpack --watch"
这个watch可以不用再输命令
9.最终效果

10.希望对你有帮助
一丢丢学习之webpack4 + Vue单文件组件的应用的更多相关文章
- webpack入坑之旅(五)加载vue单文件组件
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- Vue单文件组件
前面的话 本文将详细介绍Vue单文件组件 概述 在很多 Vue 项目中,使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页 ...
- vue 单文件组件
在很多vue项目中,我们使用vue.component来定义全局组件,紧接着用new Vue({el:'#container'})在每个页面内指定一个容器元素 这种方式在很多中小规模的项目中运作的很好 ...
- webpack打包vue单文件组件
一.vue单文件组件 ①文件扩展名为 .vue 的 就是single-file components(单文件组件) ②参考文档:单文件组件 二.webpack加载第三方包 ①项目中,如果需要用到一些第 ...
- ts-loader如何与vue单文件组件衔接
.ts-loader是如何与vue单文件组件衔接作用的 https://github.com/microsoft/TypeScript-Vue-Starter https://www.npmjs.co ...
- 基于VSCode的vue单文件组件模板设置---一次设置,可爽终生
第一步: 第二步: 第三步: 打开vue.json文件后,如果是初次设置,应该如下图所示,绿色注释部分不用管,注意那两个白色大括号 第四步:在大括号内全部粘贴如下代码,保存即可完成vue模板的设置 & ...
- vue 单文件组件最佳实践
vue 单文件组件最佳实践 生命周期 template <template> <section> <h1>vue single file components te ...
- vue单文件组件的构建
在很多Vue项目中,我们使用 Vue.component 来定义全局组件,这种方式在很多中小规模的项目中运作的很好. 但当在更复杂的项目中,就有了很大的弊端. 我们就可以用文件扩展名 .vue的单文件 ...
- Vue单文件组件基础模板
背景 相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多: 1.代码集中,便于开发.管理和维护 2.可复用性高,直接将vue文件拷贝到新项目中 我暂时就想到这两点, ...
随机推荐
- Java内存管理的进一步理解-模拟过程图解
Java内存管理的进一步理解-模拟过程图解--转载 java的内存管理分为: 1.堆内存:2.栈内存:3.方法区:4.本地方法区 /* 1:方法区 方法区存放装载的类数据信息包括: ...
- eclipse开发创建web项目
1.打开eclipse,界面如下: 2.首先配置tomcat,操作:Windows--->perferences 如下: 3.操作:server--->Runtime Environmen ...
- 小学生四则运算(java编程)201571030135
任务1源码在Github的仓库主页链接地址: https://github.com/zhanghh2018/Four-primary-school-pupils 需求分析: 作业总体效果:随机产生n道 ...
- C#基础学习第一天
..net与C# .NET是一个框架.一种平台.一种技术 C#是一种编程语言,可以开发基于.NET平台的应用 .NET能干什么 Winform ASP.NET Wwb wphone Unity3D游戏 ...
- Linux内存描述之内存区域zone--Linux内存管理(三)
1 内存管理域zone 为了支持NUMA模型,也即CPU对不同内存单元的访问时间可能不同,此时系统的物理内存被划分为几个节点(node), 一个node对应一个内存簇bank,即每个内存簇被认为是一个 ...
- Linux常见系统故障
Linux常见系统故障 1.修复MBR扇区故障 2.修复GRUB引导故障 3./etc/inittab文件丢失 4.遗忘root用户密码 5.修复文件系统 6.磁盘资源耗尽故障 一.修复MBR扇区故障 ...
- 【PAT】B1015 德才论
这道题算是挺简单,我在群里看到的别人琢磨好久过不去,大多是因为没有考虑好四种等级的判断条件 一定要保证四种判断条件正确. 下面这是我的代码,比较笨.后边有别人那学来的聪明些的方法 #include&l ...
- css_选择器
老师的博客:https://www.cnblogs.com/liwenzhou/p/7999532.html 参考w3 school:http://www.w3school.com.cn/css/cs ...
- linux 基础(一)
最近公司涉及到自动化部署的问题,本人见识了后端使用linux命令niu的飞起,一直听说linux,今天开始研究研究linux 首先是下载: 1.要先安装虚拟机2.再安装Ubuntu虚拟机 需要下载Ub ...
- yum源 Python3 Django mysql安装
yum 源安装 yum源位置: yum源仓库的地址 在/etc/yum.repos.d/,并且只能读出第一层的repo文件 yum仓库的文件都是以.repo结尾的 linux软件包管理 yum工具如同 ...