mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-04-06 03:59:53 +08:00
break: 升级 webpack-dev-server: 3.x > 4.x
This commit is contained in:
parent
53a8deb4f8
commit
eea735d3a8
@ -1,13 +1,17 @@
|
|||||||
# 快速上手
|
# 快速上手
|
||||||
|
|
||||||
## 依赖环境
|
## 依赖环境
|
||||||
首先得有 [Node.js](https://nodejs.org/),并确保 node 版本是 10.13 或以上。
|
|
||||||
|
首先得有 [Node.js](https://nodejs.org/),并确保 node 版本是 12.13 或以上。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 打印 node 版本
|
# 打印 node 版本
|
||||||
node -v
|
node -v
|
||||||
v10.13.0
|
v12.13.0
|
||||||
```
|
```
|
||||||
|
|
||||||
推荐使用 yarn 管理 npm 依赖
|
推荐使用 yarn 管理 npm 依赖
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 全局安装 yarn
|
# 全局安装 yarn
|
||||||
npm i yarn -g
|
npm i yarn -g
|
||||||
@ -17,21 +21,26 @@ npm i yarn -g
|
|||||||
|
|
||||||
这一章节会帮助你从头搭建一个简单的 Fes.js 前端应用。
|
这一章节会帮助你从头搭建一个简单的 Fes.js 前端应用。
|
||||||
|
|
||||||
##### 步骤1 创建工作空间
|
##### 步骤 1 创建工作空间
|
||||||
|
|
||||||
如果工作空间不存在,则先创建:
|
如果工作空间不存在,则先创建:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 创建目录 workspace
|
# 创建目录 workspace
|
||||||
mkdir workspace
|
mkdir workspace
|
||||||
# 进入目录 workspace
|
# 进入目录 workspace
|
||||||
cd workspace
|
cd workspace
|
||||||
```
|
```
|
||||||
|
|
||||||
如果工作空间已存在,则直接进入
|
如果工作空间已存在,则直接进入
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 进入目录 workspace
|
# 进入目录 workspace
|
||||||
cd workspace
|
cd workspace
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 步骤2 在工作空间创建项目
|
##### 步骤 2 在工作空间创建项目
|
||||||
|
|
||||||
<CodeGroup>
|
<CodeGroup>
|
||||||
<CodeGroupItem title="YARN" active>
|
<CodeGroupItem title="YARN" active>
|
||||||
|
|
||||||
@ -52,22 +61,22 @@ npx @fesjs/create-fes-app myapp
|
|||||||
</CodeGroupItem>
|
</CodeGroupItem>
|
||||||
</CodeGroup>
|
</CodeGroup>
|
||||||
|
|
||||||
|
|
||||||
如果项目文件夹 `workspace/myapp` 已经存在,会提示目录已存在:
|
如果项目文件夹 `workspace/myapp` 已经存在,会提示目录已存在:
|
||||||
|
|
||||||
<img :src="$withBase('pickTemplateTip.png')" alt="目录已存在提示">
|
<img :src="$withBase('pickTemplateTip.png')" alt="目录已存在提示">
|
||||||
|
|
||||||
你可以选择:
|
你可以选择:
|
||||||
- `Overwrite` 删除项目文件夹,重新创建项目。
|
|
||||||
- `Merge` 保留原项目文件夹,存在相同文件则用模板文件覆盖当前目录文件。
|
- `Overwrite` 删除项目文件夹,重新创建项目。
|
||||||
|
- `Merge` 保留原项目文件夹,存在相同文件则用模板文件覆盖当前目录文件。
|
||||||
|
|
||||||
当选择 `Overwrite` 或者 `Merge` 或者项目目录 `workspace/myapp` 不存在,会提示选取一个 `template`:
|
当选择 `Overwrite` 或者 `Merge` 或者项目目录 `workspace/myapp` 不存在,会提示选取一个 `template`:
|
||||||
<img :src="$withBase('pickTemplate.png')" alt="选择模板类型">
|
<img :src="$withBase('pickTemplate.png')" alt="选择模板类型">
|
||||||
|
|
||||||
你可以选默认适用于中后台前端应用的 `PC` 类型,也可以选适用于移动端的 `H5` 类型。
|
你可以选默认适用于中后台前端应用的 `PC` 类型,也可以选适用于移动端的 `H5` 类型。
|
||||||
|
|
||||||
|
##### 步骤 3 安装依赖
|
||||||
|
|
||||||
##### 步骤3 安装依赖
|
|
||||||
<CodeGroup>
|
<CodeGroup>
|
||||||
<CodeGroupItem title="YARN" active>
|
<CodeGroupItem title="YARN" active>
|
||||||
|
|
||||||
@ -75,7 +84,7 @@ npx @fesjs/create-fes-app myapp
|
|||||||
# 进入项目目录
|
# 进入项目目录
|
||||||
cd myapp
|
cd myapp
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
yarn
|
yarn
|
||||||
```
|
```
|
||||||
|
|
||||||
</CodeGroupItem>
|
</CodeGroupItem>
|
||||||
@ -86,13 +95,14 @@ yarn
|
|||||||
# 进入项目目录
|
# 进入项目目录
|
||||||
cd myapp
|
cd myapp
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
npm i
|
npm i
|
||||||
```
|
```
|
||||||
|
|
||||||
</CodeGroupItem>
|
</CodeGroupItem>
|
||||||
</CodeGroup>
|
</CodeGroup>
|
||||||
|
|
||||||
## 启动项目
|
## 启动项目
|
||||||
|
|
||||||
<CodeGroup>
|
<CodeGroup>
|
||||||
<CodeGroupItem title="YARN" active>
|
<CodeGroupItem title="YARN" active>
|
||||||
|
|
||||||
@ -130,15 +140,14 @@ Starting the development server http://localhost:8080 ...
|
|||||||
</CodeGroupItem>
|
</CodeGroupItem>
|
||||||
</CodeGroup>
|
</CodeGroup>
|
||||||
|
|
||||||
|
|
||||||
Fes.js 会在 [http://localhost:8080](http://localhost:8080) 启动一个热重载的开发服务器。当你修改你的 .vue 文件时,浏览器中的内容也会自动更新。
|
Fes.js 会在 [http://localhost:8080](http://localhost:8080) 启动一个热重载的开发服务器。当你修改你的 .vue 文件时,浏览器中的内容也会自动更新。
|
||||||
|
|
||||||
|
|
||||||
<img :src="$withBase('home.png')" alt="home">
|
<img :src="$withBase('home.png')" alt="home">
|
||||||
|
|
||||||
## 部署发布
|
## 部署发布
|
||||||
|
|
||||||
### 构建
|
### 构建
|
||||||
|
|
||||||
<CodeGroup>
|
<CodeGroup>
|
||||||
<CodeGroupItem title="YARN" active>
|
<CodeGroupItem title="YARN" active>
|
||||||
|
|
||||||
@ -173,6 +182,7 @@ npm run build
|
|||||||
</CodeGroup>
|
</CodeGroup>
|
||||||
|
|
||||||
构建产物默认生成到 ./dist 下,然后通过 tree 命令查看。
|
构建产物默认生成到 ./dist 下,然后通过 tree 命令查看。
|
||||||
|
|
||||||
```base
|
```base
|
||||||
tree ./dist
|
tree ./dist
|
||||||
|
|
||||||
@ -188,8 +198,9 @@ dist
|
|||||||
```
|
```
|
||||||
|
|
||||||
### 本地验证
|
### 本地验证
|
||||||
|
|
||||||
发布之前,可以通过 [serve](https://github.com/vercel/serve) 做本地验证,验证结果应该跟执行 `fes dev` 的结果一样。
|
发布之前,可以通过 [serve](https://github.com/vercel/serve) 做本地验证,验证结果应该跟执行 `fes dev` 的结果一样。
|
||||||
|
|
||||||
|
|
||||||
### 部署
|
### 部署
|
||||||
本地验证完,就可以部署了。你需要把 dist 目录部署到服务器上。
|
|
||||||
|
本地验证完,就可以部署了。你需要把 dist 目录部署到服务器上。
|
||||||
|
@ -2,11 +2,8 @@
|
|||||||
|
|
||||||
## 版本 2.1.x 的 break
|
## 版本 2.1.x 的 break
|
||||||
|
|
||||||
1. 编译时的 [base](../reference/config/#base) 配置,移到了 [router.base](../reference/config/#router) 下
|
1. 编译时的 [base](../reference/config/#base) 配置,移到了 [router.base](../reference/config/#router) 下。
|
||||||
|
2. [webpack-dev-server](https://github.com/webpack/webpack-dev-server) 从 `v3.x` 升级到了 `v4.x`,如果遇到配置不兼容,可以查看[webpack-dev-server 3.x 升级 4.x](https://github.com/webpack/webpack-dev-server/blob/master/migration-v4.md)。
|
||||||
## 相关插件
|
|
||||||
|
|
||||||
由于需要兼容 Vite 的写法,插件也做了相关代码调整,
|
|
||||||
|
|
||||||
## 不变更构建方式
|
## 不变更构建方式
|
||||||
|
|
||||||
|
@ -59,11 +59,10 @@
|
|||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
"vue-loader": "^16.1.2",
|
"vue-loader": "^16.1.2",
|
||||||
"webpack": "^5.24.2",
|
"webpack": "^5.69.0",
|
||||||
"webpack-bundle-analyzer": "^4.4.0",
|
"webpack-bundle-analyzer": "^4.4.0",
|
||||||
"webpack-chain": "^6.5.1",
|
"webpack-chain": "^6.5.1",
|
||||||
"webpack-dev-server": "^3.11.2",
|
"webpack-dev-server": "^4.8.1"
|
||||||
"webpackbar": "^5.0.0-3"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@vue/compiler-sfc": "^3.0.5",
|
"@vue/compiler-sfc": "^3.0.5",
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIETDCCArSgAwIBAgIQKxt9OXlPUkkQASISMtxezDANBgkqhkiG9w0BAQsFADBh
|
|
||||||
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExGzAZBgNVBAsMEmpjbEB5
|
|
||||||
Y2pjbDg2OC5sb2NhbDEiMCAGA1UEAwwZbWtjZXJ0IGpjbEB5Y2pjbDg2OC5sb2Nh
|
|
||||||
bDAeFw0xOTA2MDEwMDAwMDBaFw0zMDA2MDEwOTMzNTdaMEkxJzAlBgNVBAoTHm1r
|
|
||||||
Y2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTEeMBwGA1UECwwVamNsQHVtaWpz
|
|
||||||
LmxvY2FsICh1bWkpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvKA/
|
|
||||||
Oz9az6kEZ5zSZyufpYXt5gOAnE/f8VY2hP3g7JDRCMk6w0XgkmGDJ45nY9fVVhCy
|
|
||||||
oqg8bIkLcLbvp69/I5O8ae0TbyS95mgBflhgsqjSkydhn7bZmAe5OdZv+JtGBjd2
|
|
||||||
2YDpzseK0z1VkXxgEAKYOsxszaCj6aktAhTQvER2DYGo0XaM62SOQNL4qLn97Zrg
|
|
||||||
+g8GSjS/Cg/vb+k42tCghOm0Ks26CDBl92Dwl5modEkfzewrjC2WNletiZupsX6p
|
|
||||||
rnRDBcGYHl+S/+D/iHCSu83IkxoorsIigGlSah/nVfetsKHBTXFXnSxL86T9MA1R
|
|
||||||
5ZcXoVv1cWZNiiMMawIDAQABo4GXMIGUMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE
|
|
||||||
DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFFRTg3QdwqVq
|
|
||||||
CLRjdLfglrJZqTrzMD4GA1UdEQQ3MDWCCWxvY2FsaG9zdIIQbG9jYWwuYWxpcGF5
|
|
||||||
Lm5ldIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAYEA
|
|
||||||
lFgca57CNAoaq8MC6bTZo10FC/LDTnUh/p20w5uCp8iSKGtVM+HvulrWXwUGRkUl
|
|
||||||
jnukYeMwl4tONzwHeUV1oVT8DATFLAFIHE4ikGDM7V+Ximxv5yQQ9hD8fzeOWdYO
|
|
||||||
SKA5eDjd+ut+HiSfItqgM+8t1RxPxsYlGeOMp65cKt1NaIdRxQHwESGba6H0sez7
|
|
||||||
p5Eu95pXp/BUy7lnvqudXgfTAUpSzxpSG+49hzMKuN/CAZyFNp52qDDHpRtuxHns
|
|
||||||
q0pjGHBOC2aYc1eXNgn2g0wMDp3+BYh9yjoWNkMKqY7hpcB9PY5zw0u8R0wG8z+n
|
|
||||||
d915bZT3FKjx5sxmDmVaDNdARwi9ExqFvIs+hje1IUrszR7pnT7EUcUOhWNbKKkf
|
|
||||||
jRH3sy+TyA+TsYm1AAcnnY/Ne/Ce4OcMGcYwjb1L/gu/PWoup4f/GIziEw8cbPti
|
|
||||||
1+Exm+AOSjcSspPPfQmpHqupNaDJSjo6xYX3wn3oIb34WvH8INL3liiVedn+LTy4
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,28 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8oD87P1rPqQRn
|
|
||||||
nNJnK5+lhe3mA4CcT9/xVjaE/eDskNEIyTrDReCSYYMnjmdj19VWELKiqDxsiQtw
|
|
||||||
tu+nr38jk7xp7RNvJL3maAF+WGCyqNKTJ2GfttmYB7k51m/4m0YGN3bZgOnOx4rT
|
|
||||||
PVWRfGAQApg6zGzNoKPpqS0CFNC8RHYNgajRdozrZI5A0viouf3tmuD6DwZKNL8K
|
|
||||||
D+9v6Tja0KCE6bQqzboIMGX3YPCXmah0SR/N7CuMLZY2V62Jm6mxfqmudEMFwZge
|
|
||||||
X5L/4P+IcJK7zciTGiiuwiKAaVJqH+dV962wocFNcVedLEvzpP0wDVHllxehW/Vx
|
|
||||||
Zk2KIwxrAgMBAAECggEAUdiitz2dVN/85kyYy2WVZ0g+2wCIDMtn25tSGtDiiSOp
|
|
||||||
YEuYsOSgNkQTmdVjrWIY0rh6GrQvS9UHXsgyIyu2WiSfq8LQHPjvYYudokoM41j3
|
|
||||||
zhxXcurvbdVkHOGcQl51uvrUGjqiuTPCXDiP6YnzUN8fWNwdFfhvR1M+EVog3J+F
|
|
||||||
RpSavm+SCOkyqCBWgQDb/p59kvlISJuDXKr3tV5HaKVKYfDBQLvuiZBweDwXjxop
|
|
||||||
z2Srs2GEmJPuKXU32deqNg7KgPvd6ADxb+GXhrGVBaj7dxi77E8nHL/aGutVE4ON
|
|
||||||
VqMwdWoRPkEPU33rF+CCxHqHJFcNS+62ozzeUYGlaQKBgQDR2mPnjthIgMkX+cw5
|
|
||||||
ROSadd5gZtQFXAzjAv685k+Xqm2IGk2Z2d5VydHO7cKwVLTB6cEJ+CbLZ1kIS6yV
|
|
||||||
GxBHaZ+LQxGkt4QD9IBSnL9Cxe7uvo+bpvV3eXbANG0tNl482RctS/u+g+OGSu05
|
|
||||||
6KIIlYag5hcMjr7ozuhv8LVytwKBgQDmGuIKFHXXqeRJNW+QvJfwQFKNQViqASlY
|
|
||||||
W4Y5guS6s85inJ3bRKwYtZsczne2uwYqQHlPw8X4TQMXApM+04mJtqwrYDpcX6Ad
|
|
||||||
VYPmo+J/k917QwlN8VP4AzlDdz8PU+zenmWgpKaG8GMtYia9qCIbWY/+hwwBk0sG
|
|
||||||
FNpguWnv7QKBgFSGT2ksSwdhAB5tGgoTKrTgNvLDWDDUc8hYI3y4k2R2W+nPFmSa
|
|
||||||
sYgCY0Si1aEqbSgR3BQE5LNW7DCAMoJYRUVOUNnJ6Ohclor1R15/DjZ5/RQioztB
|
|
||||||
k2tM/DzMoRDt7iU6F7DCAyMoglNMCKMjhWhJudFC/BOtx02EUXENFjifAoGAD966
|
|
||||||
yEcw+XbWL9Zno2vebsuA5g0juFXsLBPj5gOJEvdjvJlgqcbKt8mOsSXsS8YKXs+j
|
|
||||||
jkTKWp21INkknqioS781kKhKXiSaPmuvdTDIZlQkamPtOFr0l55hTK3kw4HeTFxQ
|
|
||||||
VgwFEDl0HaUvVtVJxOkgbUWTJmiqO/kkNpeTHuECgYEAtD4dRK3w65d9BWHqgeOV
|
|
||||||
IVSDeYjA6gNuC3tuGzk9bA70U0X/T8+EQMuKNvRZC61/JzAlzEH1oGIw8md8Ki86
|
|
||||||
aRT96Gce7Q0FA3SaQ+h+w+kgsJG/aly3IThaJh/mx6HN7Xry6BFO1vlYlgdlm/1G
|
|
||||||
iKX/ppCt7bJYqfrptWs42u4=
|
|
||||||
-----END PRIVATE KEY-----
|
|
@ -1,46 +1,42 @@
|
|||||||
import WebpackDevServer from 'webpack-dev-server';
|
import WebpackDevServer from 'webpack-dev-server';
|
||||||
import webpack from 'webpack';
|
import webpack from 'webpack';
|
||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
|
|
||||||
export function startDevServer({ webpackConfig, host, port, proxy, https, beforeMiddlewares, afterMiddlewares, customerDevServerConfig }) {
|
export function startDevServer({ webpackConfig, host, port, proxy, https, beforeMiddlewares, afterMiddlewares, customerDevServerConfig }) {
|
||||||
const options = {
|
const options = {
|
||||||
contentBase: webpackConfig.output.path,
|
|
||||||
hot: true,
|
hot: true,
|
||||||
|
port,
|
||||||
host,
|
host,
|
||||||
sockHost: host,
|
|
||||||
sockPort: port,
|
|
||||||
proxy,
|
proxy,
|
||||||
compress: true,
|
allowedHosts: 'all',
|
||||||
noInfo: true,
|
static: {
|
||||||
disableHostCheck: true,
|
// contentBase: webpackConfig.output.path,
|
||||||
clientLogLevel: 'silent',
|
|
||||||
stats: 'errors-only',
|
|
||||||
before: (app) => {
|
|
||||||
beforeMiddlewares.forEach((middleware) => {
|
|
||||||
app.use(middleware);
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
after: (app) => {
|
server: https ? 'https' : 'http',
|
||||||
afterMiddlewares.forEach((middleware) => {
|
client: {
|
||||||
app.use(middleware);
|
logging: 'error',
|
||||||
});
|
webSocketURL: {
|
||||||
|
hostname: host,
|
||||||
|
port,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
devMiddleware: {
|
||||||
|
stats: 'errors-only',
|
||||||
|
},
|
||||||
|
setupMiddlewares(middlewares) {
|
||||||
|
middlewares.unshift(...beforeMiddlewares);
|
||||||
|
middlewares.push(...afterMiddlewares);
|
||||||
|
|
||||||
|
return middlewares;
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
'access-control-allow-origin': '*',
|
'access-control-allow-origin': '*',
|
||||||
},
|
},
|
||||||
...(customerDevServerConfig || {}),
|
...(customerDevServerConfig || {}),
|
||||||
};
|
};
|
||||||
if (https) {
|
|
||||||
options.https = true;
|
|
||||||
options.key = fs.readFileSync(path.resolve(__dirname, './cert/key.pem'));
|
|
||||||
options.cert = fs.readFileSync(path.resolve(__dirname, './cert/cert.pem'));
|
|
||||||
}
|
|
||||||
WebpackDevServer.addDevServerEntrypoints(webpackConfig, options);
|
|
||||||
const compiler = webpack(webpackConfig);
|
const compiler = webpack(webpackConfig);
|
||||||
const server = new WebpackDevServer(compiler, options);
|
const server = new WebpackDevServer(options, compiler);
|
||||||
|
|
||||||
server.listen(port, host, (err) => {
|
server.startCallback((err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,11 @@ export default (api) => {
|
|||||||
let hostname;
|
let hostname;
|
||||||
let server;
|
let server;
|
||||||
|
|
||||||
function destroy() {
|
async function destroy() {
|
||||||
for (const unwatch of unwatchs) {
|
for (const unwatch of unwatchs) {
|
||||||
unwatch();
|
unwatch();
|
||||||
}
|
}
|
||||||
server?.close();
|
await server?.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
api.registerCommand({
|
api.registerCommand({
|
||||||
@ -39,9 +39,7 @@ export default (api) => {
|
|||||||
hostname = getHostName(api.config.devServer?.host);
|
hostname = getHostName(api.config.devServer?.host);
|
||||||
|
|
||||||
// enable https
|
// enable https
|
||||||
const isHTTPS = process.env.HTTPS || args.https;
|
const isHTTPS = process.env.HTTPS || args.https || api.config.devServer?.https;
|
||||||
|
|
||||||
console.log(chalk.cyan(`Starting the development server ${isHTTPS ? 'https' : 'http'}://${hostname}:${port} ...`));
|
|
||||||
|
|
||||||
cleanTmpPathExceptCache({
|
cleanTmpPathExceptCache({
|
||||||
absTmpPath: paths.absTmpPath,
|
absTmpPath: paths.absTmpPath,
|
||||||
|
@ -278,9 +278,6 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod
|
|||||||
webpackConfig,
|
webpackConfig,
|
||||||
});
|
});
|
||||||
|
|
||||||
// --------------- 构建输出 ----------
|
|
||||||
webpackConfig.plugin('progress').use(require.resolve('webpackbar'));
|
|
||||||
|
|
||||||
// --------------- chainwebpack -----------
|
// --------------- chainwebpack -----------
|
||||||
if (chainWebpack) {
|
if (chainWebpack) {
|
||||||
await chainWebpack(webpackConfig, {
|
await chainWebpack(webpackConfig, {
|
||||||
|
@ -35,17 +35,6 @@ export default defineBuildConfig({
|
|||||||
],
|
],
|
||||||
devServer: {
|
devServer: {
|
||||||
port: 8000
|
port: 8000
|
||||||
},
|
}
|
||||||
windicss: {
|
|
||||||
config: {
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
colors: {
|
|
||||||
green: '#7cb305'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@
|
|||||||
"@fesjs/fes": "^2.0.0",
|
"@fesjs/fes": "^2.0.0",
|
||||||
"@fesjs/plugin-icon": "^2.0.0",
|
"@fesjs/plugin-icon": "^2.0.0",
|
||||||
"@fesjs/plugin-request": "^2.0.0",
|
"@fesjs/plugin-request": "^2.0.0",
|
||||||
"@fesjs/plugin-windicss": "^2.0.8",
|
|
||||||
"@fesjs/build-webpack": "^1.0.0",
|
"@fesjs/build-webpack": "^1.0.0",
|
||||||
"vue": "^3.2.2"
|
"vue": "^3.2.2"
|
||||||
},
|
},
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="onepiece m-10px text-green">
|
<div class="onepiece m-10px text-yellow-700">
|
||||||
fes h5 & 拉夫德鲁<br />
|
fes h5 & 拉夫德鲁<br />
|
||||||
<fes-icon :spin="true" class="one-icon" type="smile" @click="clickIcon" />
|
<fes-icon :spin="true" class="one-icon" type="smile" @click="clickIcon" />
|
||||||
<HelloWorld />
|
<HelloWorld />
|
||||||
@ -24,7 +24,7 @@ export default {
|
|||||||
const fes = ref('fes upgrade to vue3');
|
const fes = ref('fes upgrade to vue3');
|
||||||
const rotate = ref(90);
|
const rotate = ref(90);
|
||||||
const clickIcon = () => {
|
const clickIcon = () => {
|
||||||
console.log('click Icon');
|
console.log('click icon');
|
||||||
};
|
};
|
||||||
console.log(process.env.NODE_ENV, process.env.HELLO);
|
console.log(process.env.NODE_ENV, process.env.HELLO);
|
||||||
console.log(useRoute());
|
console.log(useRoute());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user