remove usage of jsDelivr

fix #369
fix #372
fix #375
This commit is contained in:
Pig Fang 2022-02-16 17:57:01 +08:00
parent 424ab20db1
commit 5fc5c2c8c2
No known key found for this signature in database
GPG Key ID: A8198F548DADA9E2
8 changed files with 1225 additions and 64 deletions

View File

@ -25,12 +25,15 @@
"@emotion/styled": "^11.0.0",
"@hot-loader/react-dom": "^17.0.0",
"@tweenjs/tween.js": "^18.5.0",
"admin-lte": "^3.2.0",
"blessing-skin-shell": "^0.3.4",
"bootstrap": "^4.6.1",
"cac": "^6.6.1",
"cli-spinners": "^2.5.0",
"echarts": "^5.1.2",
"events": "^3.2.0",
"immer": "^7.0.4",
"jquery": "^3.6.0",
"lodash.debounce": "^4.0.8",
"nanoid": "^3.1.9",
"prompts": "^2.4.0",
@ -59,7 +62,7 @@
"@types/bootstrap": "^4.3.3",
"@types/css-minimizer-webpack-plugin": "^1.1.0",
"@types/jest": "^26.0.23",
"@types/jquery": "^3.3.38",
"@types/jquery": "^3.5.13",
"@types/js-yaml": "^3.12.4",
"@types/lodash.debounce": "^4.0.6",
"@types/mini-css-extract-plugin": "^1.2.1",
@ -72,7 +75,6 @@
"@typescript-eslint/eslint-plugin": "^3.6.0",
"@typescript-eslint/parser": "^3.6.0",
"autoprefixer": "^10.2.6",
"bootstrap": "^4.5.0",
"css-loader": "^5.2.6",
"css-minimizer-webpack-plugin": "^3.0.1",
"eslint": "^7.4.0",
@ -82,7 +84,6 @@
"husky": "^7.0.4",
"jest": "^27.0.4",
"jest-extended": "^0.11.5",
"jquery": "^3.5.1",
"js-yaml": "^3.13.1",
"mini-css-extract-plugin": "^1.6.0",
"postcss": "^8.3.0",

View File

@ -1,4 +1,6 @@
import './init' // Must be first
import './init' // must be first
import $ from 'jquery'
import 'admin-lte'
import './extra'
import './i18n'
import './net'

View File

@ -50,22 +50,6 @@ registerRoute(
//#endregion
//#region jsDelivr
registerRoute(
/.*cdn\.jsdelivr\.net/,
new CacheFirst({
cacheName: 'jsdelivr-v1',
fetchOptions: {
credentials: 'omit',
mode: 'cors',
},
plugins: [
new ExpirationPlugin({ maxAgeSeconds: oneWeek, purgeOnQuotaError: true }),
],
}),
)
//#endregion
//#region JavaScript files
registerRoute(
/.+\/app\/\w{2,3}\.\w{7}\.js$/,

View File

@ -14,8 +14,6 @@
}
</style>
{{ include('assets.home-css', ignore_missing = true) }}
<link rel="prefetch" as="script" href="https://cdn.jsdelivr.net/npm/react@17.0.1/umd/react.production.min.js" crossorigin="anonymous">
<link rel="prefetch" as="script" href="https://cdn.jsdelivr.net/npm/react-dom@17.0.1/umd/react-dom.production.min.js" crossorigin="anonymous">
</head>
<body class="hold-transition layout-top-nav">

View File

@ -1,7 +1,3 @@
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha256-/ijcOLwFf26xEYAjW75FizKVo5tnTYiQddPZoLUHHZ8=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha256-SyTu6CwrfOhaznYZPoolVw2rxoY7lKYKQvqbtqN93HI=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/admin-lte@3.2.0/dist/js/adminlte.min.js" integrity="sha256-u2yoem2HtOCQCnsp3fO9sj5kUrL+7hOAfm8es18AFjw=" crossorigin="anonymous"></script>
<script src="{{ i18n }}" crossorigin="anonymous"></script>
{{ include('assets.app', ignore_missing = true) }}
{% for script in scripts %}

View File

@ -6,16 +6,13 @@
<meta name="keywords" content="{{ seo.keywords }}">
<meta name="description" content="{{ seo.description }}">
{{ seo.extra|striptags('<meta>')|raw }}
<link rel="preconnect" href="https://cdn.jsdelivr.net/" crossorigin>
<link rel="preconnect" href="https://unpkg.com/" crossorigin>
{% if custom_cdn_host %}
<link rel="preconnect" href="{{ custom_cdn_host }}" id="cdn-host" crossorigin>
{% endif %}
<script id="blessing-globals" type="application/json">{{ blessing|json_encode|raw }}</script>
<script src="{{ url('/meta.js') }}"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/admin-lte@3.2.0/dist/css/adminlte.min.css" integrity="sha256-rhU0oslUDWrWDxTY4JxI2a2OdRtG7YSf3v5zcRbcySE=" crossorigin="anonymous">
<link rel="preload" as="font" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.13.0/webfonts/fa-solid-900.woff2" crossorigin>
<link rel="preload" as="font" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.13.0/webfonts/fa-regular-400.woff2" crossorigin>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.13.0/css/all.min.css" integrity="sha256-h20CPZ0QyXlBuAw7A+KluUYx/3pK+c7lYEpqLTlxjYQ=" crossorigin>
<link rel="stylesheet" href="https://unpkg.com/@fortawesome/fontawesome-free@5.15.4/css/all.min.css" crossorigin>
{{ include('assets.style', ignore_missing = true) }}
{% for link in links %}
<link{% for attribute, value in link %} {{ attribute }}="{{ value|raw }}"{% endfor %}>

View File

@ -20,7 +20,13 @@ export default function (env?: Env): webpack.Configuration[] {
mode: isDev ? 'development' : 'production',
entry: {
app: ['react-hot-loader/patch', '@/index.tsx'],
style: ['@/styles/common.css'],
style: [
'@/styles/common.css',
'admin-lte/dist/css/alt/adminlte.components.min.css',
'admin-lte/dist/css/alt/adminlte.core.min.css',
'admin-lte/dist/css/alt/adminlte.pages.min.css',
'admin-lte/dist/css/alt/adminlte.light.min.css',
],
home: '@/scripts/homePage.ts',
'home-css': '@/styles/home.css',
spectre: [
@ -71,11 +77,6 @@ export default function (env?: Env): webpack.Configuration[] {
chunkFilename: isDev ? '[id].css' : '[id].[contenthash:7].css',
}),
new HtmlWebpackPlugin({
templateContent: isDev
? ''
: `
<script src="https://cdn.jsdelivr.net/npm/react@17.0.1/umd/react.production.min.js" integrity="sha256-Ag0WTc8xFszCJo1qbkTKp3wBMdjpjogsZDAhnSge744=" crossorigin></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@17.0.1/umd/react-dom.production.min.js" integrity="sha256-k8tzaSH8ucPwbsHEO4Wk5szE9zERNVz3XQynfyT66O0=" crossorigin></script>`,
chunks: ['app'],
scriptLoading: 'blocking',
filename: 'app.twig',
@ -127,15 +128,6 @@ export default function (env?: Env): webpack.Configuration[] {
assert: false,
},
},
externals: Object.assign(
{ jquery: 'jQuery', bootstrap: 'bootstrap', 'admin-lte': 'adminlte' },
isDev
? {}
: {
react: 'React',
'react-dom': 'ReactDOM',
},
) as Record<string, string>,
optimization: {
// @ts-ignore
minimizer: [new CssMinimizerPlugin({}), '...'],

1227
yarn.lock

File diff suppressed because it is too large Load Diff