Vue项目组成逻辑文件关系和作用
手动创建Vue项目
创建项目基础文件
创建项目目录
mkdir egg-big
,切换到项目目录cd egg-big
创建
index.html
<html> <body> <div id="app"> </div> </body> </html>
创建
App.vue
{{ message }}
创建
main.js
import { createApp } from 'vue' import App from './App.vue' createApp(App).mount('#app');
终端输入
npm init -y
生成package.json
package.json:简易包管理文件
终端输入
npm install vue
生成node_modules
文件夹node_modules/:项目依赖文件
package-lock.json: 详细包管理文件
创建
src
文件夹,并将index.html
、App.vue
、main.js
移入,src文件夹
就是开发的源文件夹
在项目根目录创建
webpack.config.js
用于配置Webpack
安装
Webpack
依赖npm i -D webpack webpack-cli webpack-dev-server
webpack-dev-server:类似于
vscode
的live server
-D:表示安装的是开发环境的依赖,并不放在生产环境上
安装
Babel
npm i -D babel-loader @babel/core @babel/preset-env
并不是每个浏览器都能识别并处理ES6语法,需要Babel将代码从高版本转成低版本
安装
vue-loader
使浏览器识别Vue
单文件组件npm i -D vue-loader vue-template-compiler css-loader vue-style-loader html-webpack-plugin
vue-template-compiler
css-loader
:css识别依赖html-webpack-plugin
:将源文件的HTML
和JS
合并,并生成最终的文件夹和文件编辑
webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin'); const { VueLoaderPlugin } = require('vue-loader'); module.exports = { entry: './src/main.js', module: { rules: [ { test: /\.js$/, use: 'babel-loader' }, { test: /\.vue$/, use: 'vue-loader' }, { test: /\.css$/, use: ['vue-style-loader', 'css-loader'] } ] }, plugins:[ new HtmlWebpackPlugin({ template:'./src/index.html', }), new VueLoaderPlugin(), ], };
项目根目录创建
.babelrc.js
配置babelmodule.exports ={ presets:['@babel/preset-env'], }
编辑
package.json
,修改scripts
的内容"scripts": { "serve": "webpack-dev-server --mode development", "build": "webpack --mode production" },
运行
npm run serve
:生成模仿http服务器,http://localhost:8080 预览项目运行
npm run build
:构建生产版本,生成dist文件夹
终端输入
git init
,项目根目录创建.gitignore
、README.md
编辑
.gitignore
node_modules
项目根目录创建
jsconfig.json
{ "compilerOptions": { "target": "ES5", "module": "esnext", "baseUrl": "./", "moduleResolution": "node", "paths": { "@/*": [ "src/*", ] }, "lib": [ "esnext", "dom", "dom.iterable", "scripthost" ] } }
Vue
有Vue Cli
和Vite
可以创建项目,Vue Cli
基于Webpack
Vue Cli 脚手架创建Vue项目
vue create [项目名称]
项目名称:不可有大写英文字母
src/assets/:用来存放图片和字体等
src/components/:组件文件夹
public/:存放静态资源,不需要打包的文件