vue pages 多入口项目 + chainWebpack 全局引用缩写说明

作者:晴天有点孤单 时间:2024-05-21 10:30:37 

项目结构

├── node_modules    # 项目依赖包目录
├── build      # 项目 webpack 功能目录
├── config      # 项目配置项文件夹
├── src      # 前端资源目录
│ ├── images     # 图片目录
│ ├── components    # 公共组件目录
│ ├── pages     # 页面目录
│ │ ├── page1    # page1 目录
│ │ │ ├── components  # page1 组件目录
│ │ │ ├── router   # page1 路由目录
│ │ │ ├── views   # page1 页面目录
│ │ │ ├── page1.html  # page1 html 模板
│ │ │ ├── page1.vue  # page1 vue 配置文件
│ │ │ └── page1.js  # page1 入口文件
│ │ ├── page2    # page2 目录
│ │ └── index    # index 目录
│ ├── common     # 公共方法目录
│ └── store     # 状态管理 store 目录
├── .gitignore     # git 忽略文件
├── .env      # 全局环境配置文件
├── .env.dev     # 开发环境配置文件
├── .postcssrc.js    # postcss 配置文件
├── babel.config.js   # babel 配置文件
├── package.json    # 包管理文件
├── vue.config.js    # CLI 配置文件
└── yarn.lock     # yarn 依赖信息文件

vue config.js 配置


pages: {
 page1: {
  entry: "src/pages/page1/main.js",
  template: "public/index.html",
  filename: "index.html",
  title: "page1",
  chunks: ["chunk-vendors", "chunk-common", "page1"]
 },
 page2: {
  entry: "src/pages/page1/main.js",
  template: "public/index.html",
  filename: "page2.html",
  title: "page2",
  chunks: ["chunk-vendors", "chunk-common", "page2"]
 },
},

需要默认打开某个项目时只需要 filename 设置为 index.html 即可,否则需要 通过详细 url 进入对应项目

*如果有其他技术方案欢迎留言指正*

chainWebpack 全局引用缩写


chainWebpack: config => {
 config.resolve.alias
  .set("@", resolve("src")) // key,value自行定义,比如.set('@@', resolve('src/components'))
  .set("_c", resolve("src/components"))
  .set("_js", resolve("src/assets/js"));
},

补充知识:vue-quill-editor的使用及个性化定制

最近在用vue + element ui写一个小应用要用到富文本编辑器,以前做项目都一直都用ueditor,但是看了一下它与vue的兼容性并不好,又对比了几个后,选择了vue-quill-editor。

vue-quill-editor基于Quill、适用于 Vue 的富文本编辑器,支持服务端渲染和单页应用,正是我想要的☻。这里只介绍基本的安装和部分简单的定制。我翻了很多别人写的东西对我的项目都无效,最后自己折腾出来在这记录备忘。

一、安装

1.安装模块

npm install vue-quill-editor –save

2.vue组件


<template>
<div class="edit_container">
<quill-editor
 v-model="content"
 ref="myQuillEditor"
 :options="editorOption"
 @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
 @change="onEditorChange($event)">
</quill-editor>
</div>
</template>

<script>
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import { quillEditor } from 'vue-quill-editor';

export default {
name: "addJournal",
components: {
 quillEditor
},
data() {
 return {
 content: ``,
 editorOption: {},
 };
},
methods: {
 onEditorReady(editor) {}, // 准备编辑器
 onEditorBlur(){}, // 失去焦点事件
 onEditorFocus(){}, // 获得焦点事件
 onEditorChange(){}, // 内容改变事件
},
computed: {
 editor() {
 return this.$refs.myQuillEditor.quill;
 },
},
}
</script>

至此,vue-quill-editor就安装完成了,效果图如下:

vue pages 多入口项目 + chainWebpack 全局引用缩写说明

二、定(zhe)制(teng)

这里只简单介绍两类操作: 样式修改和自定义工具栏。

1.样式修改

a) 修改vue-quill-editor编辑框高度

这个其实很简单了,只要在vue组件的<style>标签里增加一个样式即可


.quill-editor{
height: 400px;
}

在调整了编辑框的高度后,如果编辑内容的高度超过了编辑框的高度,编辑框会出现滚动条(不手动调整此高度话会一直往下扩展)。

b) 修改工具栏对齐方式

这里需要注意,使用webstorm创建的vue组件中,styte标签的默认会加上scoped属性, 也就是说,只对当前模块的元素有效,而工具栏是从外部引入的,因此下面的样式要写在无scoped属性的style标签里才会有效。


.ql-toolbar.ql-snow{
text-align: left;
}

修改完后的样式如下

vue pages 多入口项目 + chainWebpack 全局引用缩写说明

2.定制工具栏按钮

以字体大小调节为例,这是默认的调节按钮,我们想改成多个像素大小的下拉选框。

vue pages 多入口项目 + chainWebpack 全局引用缩写说明

step1: 在vue组件中引入quill模块,修改whitelist, 并注册样式


import * as Quill from 'quill';
let fontSizeStyle = Quill.import('attributors/style/size');
fontSizeStyle.whitelist = ['10px', '12px', '14px', '16px', '20px', '24px', '36px', false];//false表示默认值
Quill.register(fontSizeStyle, true);

step2: 修改quill-editor的option属性值


editorOption: {
modules: {
toolbar: [["bold", "italic", "underline", "strike"], ["blockquote", "code-block"], [{header: 1}, {header: 2}], [{list: "ordered"}, {list: "bullet"}], [{script: "sub"}, {script: "super"}], [{indent: "-1"}, {indent: "+1"}], [{direction: "rtl"}],
 [{size: fontSizeStyle.whitelist}], [{header: [1, 2, 3, 4, 5, 6, !1]}], [{color: []}, {background: []}], [{font: []}], [{align: []}], ["clean"], ["link", "image", "video"]],
},
}

这个modules里面的值是参照vue-quill-editor模块里的vue-quill-editor.js里的modules值设置的,只需要将你要修改的工具栏按钮的值替换成step1里设置的whitelist值即可。

step3: 增加定制选项的css样式


.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='10px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='10px']::before {
content: '10px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='12px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='12px']::before {
content: '12px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='14px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='14px']::before {
content: '14px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='16px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='16px']::before {
content: '16px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='20px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='20px']::before {
content: '20px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='24px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='24px']::before {
content: '24px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='36px']::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value='36px']::before {
content: '36px';
}

此样式的选择器可以从quill.snow.css.js中找到,我们要做的只是修改它的data-value值。

修改后的工具栏:

vue pages 多入口项目 + chainWebpack 全局引用缩写说明

来源:https://blog.csdn.net/maggie_live/article/details/88695477

标签:vue,pages,多入口,chainWebpack,缩写
0
投稿

猜你喜欢

  • vue.js指令v-for使用及索引获取

    2024-04-30 10:46:49
  • 网页表单项Input的高级限制级用法

    2008-10-27 16:50:00
  • 解决Pytorch自定义层出现多Variable共享内存错误问题

    2023-12-14 14:43:46
  • python字符串替换re.sub()方法解析

    2022-02-14 16:51:42
  • python 如何调用 dubbo 接口

    2022-09-28 13:20:13
  • Django框架实现分页显示内容的方法详解

    2023-05-31 17:06:38
  • Django 添加静态文件的两种实现方法(必看篇)

    2021-09-03 23:53:58
  • 微信小程序下拉加载和上拉刷新两种实现方法详解

    2024-04-23 09:30:52
  • Javascript实现单选框效果

    2024-04-23 09:06:42
  • python3实现字符串操作的实例代码

    2023-08-23 06:24:31
  • keras 读取多标签图像数据方式

    2021-01-30 18:26:48
  • MySQL 8.0 之不可见列的基本操作

    2024-01-18 17:32:41
  • python读写文件write和flush的实现方式

    2022-10-28 07:04:58
  • 一文详解Golang 定时任务库 gron 设计和原理

    2023-08-06 21:34:38
  • JS关于 replace 取值、替换第几个匹配项问题小结

    2024-04-25 13:11:05
  • python list语法学习(带例子)

    2023-08-20 05:36:40
  • Asp定时执行操作 Asp定时读取数据库(网页定时操作详解)

    2011-03-17 11:04:00
  • python3+dlib实现人脸识别和情绪分析

    2023-10-18 12:07:10
  • vue如何获取指定元素

    2024-05-09 15:15:19
  • PyTorch基础之torch.nn.Conv2d中自定义权重问题

    2023-10-13 05:16:31
  • asp之家 网络编程 m.aspxhome.com