(1)创建名为vue_pointcloud的vue3项目,并选择手动设置Manually...
vue create vue_pointcloud

(2)选择手动创建项目

(3)选择项目所需要的功能

![]()
- (*) Babel // 支持高阶语法转换。可以将ES6代码转为ES5代码。
-
- ( ) TypeScript // 支持用TypeScript写源码。包含并扩展了JS的语法,需要被编译输出为JS在浏览器运行。
-
- ( ) Progressive Web App (PWA) Support // 支持PWA。渐进式Web应用程序。
-
- (*) Router // vue路由
-
- (*) Vuex // vue的状态管理模式
-
- (*) CSS Pre-processors // CSS 预处理器(如:less、sass)
-
- (*) Linter / Formatter // 代码风格检查和格式化(如:ESlint)
-
- ( ) Unit Testing // 支持单元测试
-
- ( ) E2E Testing // 支持E2E(end to end)测试
(4)选择项目的版本(vue2或vue3)

(5)是否用history模式来创建路由
hash模式和history模式的不同
最直观的区别就是在url中hash带了一个很丑的 # ,而history是没有#的
![]()
(6)css预处理器,这里选择第一个Sass/SCSS

![]()
- 1)Sass安装需要Ruby环境,是在服务端处理的,SCSS 是 Sass3新语法(完全兼容 CSS3且继承Sass功能)
- 2)LESS 最终会通过编译处理输出css到浏览器,Less 既可以在客户端上运行,也可在服务端运行 (借助 Node.js)
- 3)Stylus 主要用来给Node项目进行CSS预处理支持,Stylus功能上更为强壮,和js联系更加紧密,可创建健壮的、动态的的CSS。
(7)语法检测工具。此处选择了ESLint with error prevention only 仅错误预防

- ESLint with error prevention only 仅错误预防
-
- ESLint + Airbnb config Airbnb配置
-
- ESLint + Standard config 标准配置
-
- ESLint + Prettier 该配置应该比较完善
(8)语法检查方式。此处选择了:保存就检测Lint on save
![]()
(9)配置文件放哪。选择In dedicated config files

- In dedicated config files // 独立文件放置
- In package.json // 放package.json里
(10)是否将此保存为将来项目的预设 。这里选择No,然后项目开始创建。
如果预设的话,起个名字,下次创建项目可以使用该模板直接创建,不用再次选择 。

(11)项目创建成功 。



(1)node_modules:所有的项目依赖包都放在这个目录下(通过 npm install 下载的包)。
(2)public:存放静态资源公共资源,不会被压缩合并。
(3)src:源文件目录,编写的代码基本都在这个目录下。
(4).eslintrc.js:配置eslint语法规则。
ESLint 是一个语法规则和代码风格的检查工具,可以用来保证写出语法正确、风格统一的代码。
(5).gitignore:用来配置那些不归git管理的文件。
(6)babel.config.js:Babel的配置文件,作用于整个项目。
(7)jsconfig.json:指定根目录和JavaScript服务提供的功能选项。
Visual Studio Code的JavaScript支持可以两种不同模式运行:
(8)package-lock.json:项目配置信息文件/所依赖的开发包的版本信息及所依赖的插件信息。(具体版本)
(9)package.json:项目配置信息文件/所依赖的开发包的版本信息及所依赖的插件信息。(大概版本)
(10)README.md:项目的说明文件。
(11)vue.config.js:对vue文件进行配置。
(12)webpack.config.js:webpack的配置文件,例:把.vue的文件打包成浏览器能读懂的文件。
位置:src目录下的router目录下的index.js文件
使用:vue-router路由文档详解_donglianyou的博客-CSDN博客_vue-router文档

所有的组件都是它的子组件。在根组件中再使用router-view组件,路由中匹配到的所有的组件都会通过它进行渲染。

在路由配置中(如下图所示),path为 “/” 的组件,自动加载到App.vue的路由占位符位置。


字段说明:
- {
- "name": "kodeblog",
- "version": "0.1.0",
- }
指定了运行脚本命令的npm命令行缩写。
如下列设置中指定了npm run serve所要执行的命令为vue-cli-service serve【即npm run + 缩写】
- "scripts": {
- "serve": "vue-cli-service serve",
- "build": "vue-cli-service build",
- "lint": "vue-cli-service lint"
- },
它们都指向一个对象,该对象的各个成员,分别由模块名和对应的版本要去组成,表示依赖的模块及其版本范围。
- //dependencies --- 项目的依赖,类似于后端的pom.xml,在此处的依赖
- //选择 "build": "vue-cli-service build --mode prod"
- "dependencies": {
- "core-js": "^3.6.5",
- "vue": "^3.0.0"
- },
- "devDependencies": {//devDependencies设定的是开发使用的依赖
- "@vue/cli-plugin-babel": "~4.5.0",
- "@vue/cli-plugin-eslint": "~4.5.0",
- "@vue/cli-service": "~4.5.0",
- "@vue/compiler-sfc": "^3.0.0",
- "babel-eslint": "^10.1.0",
- "eslint": "^6.7.2",
- "eslint-plugin-vue": "^7.0.0-0"
- },
- {
- "name" : "foo",
- "config" : { "port" : "8080" },
- "scripts" : { "start" : "node server.js" }
- }
- "engines": {
- "node": ">= 4.0.0",
- "npm": ">= 3.0.0"
- },
配置详解:

- 首先是 publicPath
- {
- Type(类型): string
- Default(默认): '/'
- }
- 1.项目部署的基础路径
- 2.我们默认假设你的应用将会部署在域名的根部,
- 3.比如 https://www.my-app.com/
- 4.如果你的应用时部署在一个子路径下,那么你需要在这里
- 指定子路径。比如,如果你的应用部署在
- https://www.foobar.com/my-app/
- 那么将这个值改为 `/my-app/`
-
- 拓展:把开发服务器假设在根路径,可以直接使用一个判断
- publicPath :process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/'
- outputDir (基本不动,打包目录不都是用那个吗)
- {
- Type(类型): string
- Default(默认): 'dist'
- }
- 1.将构建好的文件输出到哪里(或者说将编译的文件),当运行 vue-cli-service build 时
- 生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)。
- assetsDir (基本上都是默认)
- {
- Type(类型): string
- Default(默认): ''
- }
- 1.放置生成的静态资源 (js、css、img、fonts) 的目录。
- 注(我没懂):从生成的资源覆写 filename 或 chunkFilename 时,assetsDir 会被忽略。
- indexPath (没动过)
- {
- Type(类型): string
- Default(默认): 'index.html'
- }
- 1.指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
- 如果你的前端应用和后端 API 服务器没有运行在同一个主机上,
- 你需要在开发环境下将 API 请求代理到 API 服务器。
- 这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。
- 我们前边的 axios 就说了
- // 配置 webpack-dev-server 行为。
- devServer: {
- open: process.platform === 'darwin',
- host: '0.0.0.0',
- port: 8080,
- https: false,
- hotOnly: false,
- proxy: {
- '/api': {
- target: 'http://localhost:8880',
- changeOrigin: true,
- secure: false,
- // ws: true,
- pathRewrite: {
- '^/api': '/static/mock'
- // 请求数据路径别名,这里是注意将static/mock放入public文件夹
- }
- }
- },
- before: app => {}
- },
很多都是默认的,不需要修改
- module.exports = {
- // publicPath:process.env.NODE_ENV === 'production' ? '/vue_workspac/aihuhuproject/' : '/',
-
- //基本路径
- publicPath: './',//默认的'/'是绝对路径,如果不确定在根路径,改成相对路径'./'
- // 输出文件目录
- outputDir: 'dist',
- assetsDir: 'static',
- indexPath: 'index.html',
- // eslint-loader 是否在保存的时候检查
- lintOnSave: true,
- // 生产环境是否生成 sourceMap 文件
- productionSourceMap: false,
- // css相关配置
- css: {
- // 是否使用css分离插件 ExtractTextPlugin
- extract: true,
- // 开启 CSS source maps?
- sourceMap: false,
- },
- // webpack-dev-server 相关配置
- devServer: {
- open: false,//open 在devServer启动且第一次构建完成时,自动用我们的系统的默认浏览器去打开要开发的网页
- host: '0.0.0.0',//默认是 localhost。如果你希望服务器外部可访问,指定如下 host: '0.0.0.0',设置之后之后可以访问ip地址
- port: 8080,
- hot: true,//hot配置是否启用模块的热替换功能,devServer的默认行为是在发现源代码被变更后,通过自动刷新整个页面来做到事实预览,开启hot后,将在不刷新整个页面的情况下通过新模块替换老模块来做到实时预览。
- https: false,
- hotOnly: false,// hot 和 hotOnly 的区别是在某些模块不支持热更新的情况下,前者会自动刷新页面,后者不会刷新页面,而是在控制台输出热更新失败
- proxy: {
- '/': {
- target: 'http://xxxx:8080', //目标接口域名
- secure: false, //false为http访问,true为https访问
- changeOrigin: true, //是否跨域
- pathRewrite: {
- '^/': '/' //重写接口
- }
- }
- }, // 设置代理
- before: app => { }
- },
- // 第三方插件配置
- pluginOptions: {
- // ...
- }
- };
vue的开发有两种:
- webpack 分为
- Entry:入口
- Output: 出口
- Module 模块
- Plugin 插件
- DevServer 服务器配置
参考:
Vue vue.config.js 的详解与配置_前端菜鸟-AllenYe的博客-CSDN博客_vueconfig.js