从零开始手写vue项目的webpack基础配置
一、创建目录结构
执行yarn init
, 生成package.json
文件;
1、写入文件
建立目录结构可参考vue项目目录结构;
首先建立一个src
文件夹,其中包含index.html
,App.vue
, main.js
,
其中
index.html
用于挂在vue实例,和外部访问的页面文件App.vue
用于写入vue文件的入口文件main.js
用于创建vue实例, 并将实例挂在到index.html
2、初始化文件内容
index.html
: 其中id=app
作为挂在vue实例的节点
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"></div>
</body>
</html>
App.vue
: vue文件的入口
<template><div class="root"><!-- <router-view /> -->qweqweqweqwe</div>
</template><script>export default{name: "App",data(){return{routerTransition: 'router-slide-left',}}}
</script>
<style scoped>.root{color: blue;font-size: 20px}
</style>
main.js
: 项目的入口文件, 实例化vue, 并将vue实例挂载到指定dom(此项目问 id=app
的div元素)上
import {createApp} from 'vue';
import App from './App.vue';createApp(App).mount('#app');
3、配置webpack配置
新建文件webpack.config.js
const path = require('path');
const { VueLoaderPlugin } = require('vue-loader')
const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {entry: "./src/main.js",mode: "development",output: {path: path.resolve(__dirname, './dist'),filename: 'bundle.js'},devServer: {// contentBase: path.join(__dirname, "dist"),compress: true,port: 9000},module:{rules:[{test: /\.vue$/,use: ['vue-loader'],exclude: /node_modules/},{test: /\.css$/, use:['style-loader','css-loader']},//配置处理.css文件的第三方处理规则{test: /\.less$/, use: ["style-loader",'css-loader','less-loader']},{test: /\.scss$/, use: ["style-loader",'css-loader','sass-loader']},{test: /\.(jpg|png|gif|bmp|jpeg)$/, use: "url-loader?limit=8000"},{test: /\.(tff|eot|svg|woff|woff2)$/, use: "url-loader"},{test:/\.js$/, use:'babel-loader',exclude:/node_modules/},]},plugins: [new VueLoaderPlugin(),new HtmlWebpackPlugin({template: './src/index.html'})],
}
配置并安装以上webpack配置中loader和plugin对应的依赖;如package.json
所示
{"name": "vue-webpack","version": "1.0.0","description": "从零配置vue的webpack开发环境","main": "index.js","author": "zmb","license": "MIT","scripts": {"start": "webpack-dev-server --config webpack.config.js","build": "webpack --config webpack.config.js"},"devDependencies": {"vue": "^3.2.37","vue-router": "^4.1.4","webpack": "^5.74.0","webpack-cli": "^4.10.0"},"dependencies": {"@babel/core": "^7.19.0","babel-loader": "^8.2.5","css-loader": "^6.7.1","html-webpack-plugin": "^5.5.0","less-loader": "^11.0.0","sass-loader": "^13.0.2","style-loader": "^3.3.1","url-loader": "^4.1.1","vue-loader": "^17.0.0","webpack-dev-server": "^4.10.1"}
}
确定目录结构
project
|--src|--index.html|--view|-- App.vue|--main.js
|--webpack.config.js
|--package.json
打包与启动
- 打包使用webpack命令结合
webpack.config.json
配置文件打包生成dist文件夹; - 本地启动使用
webpack-dev-server
结合webpack.config.json
配置文件在本地启动server;
至此,我们通过webpack配置的vue项目就搭建完成了!
从零开始手写vue项目的webpack基础配置相关推荐
- 建立项目的webpack简单配置
实战项目中的 Webpack 配置: 说明:以下命令通过 Git Bash 执行 1.建立webpack-demo文件夹及npm初始化 Administrator@PC-20170414ZFJO MI ...
- node怎么把token放到redis_从零开始手写 redis(八)朴素 LRU 淘汰算法性能优化
前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...
- 从零开始手写VIO第三章作业(含关键点细节及思维过程)
文章目录 前言·与同主题博文的不同 1.代码修改 1.1阻尼因子 µ 随着迭代变化的曲线图 1.2完成曲线y = ax^2^ + bx + c的参数估计 1.3实现其他更优秀的阻尼因子策略 2.公式推 ...
- 深蓝学院《从零开始手写VIO》作业六
深蓝学院<从零开始手写VIO>作业五 深蓝学院<从零开始手写VIO>作业六 1. 证明题 2. 代码题 深蓝学院<从零开始手写VIO>作业六 1. 证明题 证明Dy ...
- 深蓝学院《从零开始手写VIO》作业五
深蓝学院<从零开始手写VIO>作业五 1. 完成Bundle Adjustment求解器 2. 完成测试函数 3. 论文总结 1. 完成Bundle Adjustment求解器 完成单目 ...
- 深蓝学院《从零开始手写VIO》作业三
深蓝学院<从零开始手写VIO>作业三 深蓝学院<从零开始手写VIO>作业三 1. 代码修改 2. 公式推导 3. 公式证明: 深蓝学院<从零开始手写VIO>作业三 ...
- druid连接池初始化慢_从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池
前景回顾 第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis. 第二节 从零开始手写 mybatis(二)mybatis interceptor ...
- 从零开始手写VIO 第二章 IMU传感器
第二章 IMU传感器 课程代码: https://github.com/kahowang/Visual_Internal_Odometry/tree/main/%E7%AC%AC%E4%BA%8C%E ...
- (超全)Vue.js学习笔记—webpack基础配置(webpack4+babel7+vue2)
webpack基础配置&&单文件组件与vue-loader 参考<Vue,js>实战(梁灏编著) 笔者近期学习Vue.js进阶篇,参考教程流程完成webpack.vue.b ...
最新文章
- 借力5G,云VR将推动VR产业迎“第二春”
- 热议!“建议放学时间与父母下班时间一致”,网友:陪我一起996吗?
- hdu 4004 二分查找
- 【渝粤题库】陕西师范大学202012 刑事诉讼法专论 作业
- iphone UITableView及UIWebView的使用
- vs2008C1902数据库管理程序不匹配
- 研大考研:2015考研政治认识论知识点
- 计算机课翻转课堂教案,翻转课堂式教学
- 技术团队人效计算公式
- Efficient and Effective Data Imputation with Influence Functions
- R中的特殊值NAN\NA\inf\NULL
- URL缩短器:详细说明
- 在单机(物理机)上用虚拟机部署kubernetes集群
- mybatis foreach
- 安装MySQL的步骤和方法
- 开到“十字路口”的共享汽车未来怎么走?
- Oracle函数获取汉字的首字母
- 微信新出置顶公众号功能,优质自媒体的春天!
- su Authentication failure解决方法
- 2022年前端免费学习资料大全
热门文章
- 受害者有罪论——如何反驳
- 提取一个字符串(少于80个字符)中的所有数字字符(‘0’...‘9’)并输出。
- exchanger java_(十二)java多线程之Exchanger
- [附源码]Nodejs计算机毕业设计线上文具销售系统Express(程序+LW)
- 最白话的语音识别入门—GMM模型
- Apache IoTDB源码解析(0.11.2版本):Session的源码解析
- MySQL从删库到跑路(2):大爷的SQL私房菜
- ZBrush——纯小白入门篇(三)
- Python 之父爆料:明年至少令 Python 提速 1 倍!
- Unity动画☀️动画帧事件