Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue_django_test
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周田
vue_django_test
Commits
1de1afb8
Commit
1de1afb8
authored
Aug 08, 2023
by
周田
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 修复静态文件的报错
parent
9e2a0151
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
33 deletions
+27
-33
handleHTML.js
frontend/handleHTML.js
+24
-0
index.html
frontend/index.html
+0
-31
package.json
frontend/package.json
+3
-2
No files found.
frontend/handleHTML.js
0 → 100644
View file @
1de1afb8
// 如果运行报错 Cannot use import statement outside a module 换成
// const fs = require("fs");
import
fs
from
"fs"
;
const
htmlPath
=
"./dist/index.html"
;
// 打包后的html文件路径
const
htmlText
=
fs
.
readFileSync
(
htmlPath
,
'utf8'
);
const
htmlArr
=
htmlText
.
match
(
/.*
\n
/g
)
||
[];
let
result
=
""
;
htmlArr
.
forEach
(
v
=>
{
v
=
v
.
replace
(
/script
?
nomodule
\s?
/g
,
"script "
)
.
replace
(
/
\s?
crossorigin
\s?
/g
,
" "
)
.
replace
(
/data-src/g
,
'src'
);
if
(
!
v
.
includes
(
`script type="module"`
))
{
result
+=
v
;
}
});
fs
.
writeFileSync
(
htmlPath
,
result
,
'utf8'
);
console
.
log
(
"处理完成"
);
\ No newline at end of file
frontend/index.html
View file @
1de1afb8
...
...
@@ -10,35 +10,4 @@
<div
id=
"app"
></div>
<script
type=
"module"
src=
"/src/main.ts"
></script>
</body>
<script>
(
function
(
win
)
{
// 获取页面所有的
<
script
>
标签对象
let
scripts
=
document
.
getElementsByTagName
(
'script'
)
// 遍历标签
for
(
let
i
=
0
;
i
<
scripts
.
length
;
i
++
)
{
// 提取单个
<
script
>
标签对象
let
script
=
scripts
[
i
]
// 获取标签中的 src
let
url
=
script
.
getAttribute
(
"src"
)
// 获取标签中的 type
let
type
=
script
.
getAttribute
(
"type"
)
// 获取标签中的js代码
let
scriptText
=
script
.
innerHTML
// 如果有引用地址或者 type 属性 为 "module" 则代表该标签需要更改
if
(
url
||
type
===
"module"
)
{
// 创建一个新的标签对象
let
tag
=
document
.
createElement
(
'script'
);
// 设置src的引入
tag
.
setAttribute
(
'url'
,
url
);
// 设置js代码
tag
.
innerHTML
=
scriptText
// 删除原先的标签
script
.
remove
()
// 将标签添加到代码中
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
tag
)
}
}
})(
window
)
</script>
</html>
frontend/package.json
View file @
1de1afb8
...
...
@@ -5,8 +5,9 @@
"type"
:
"module"
,
"scripts"
:
{
"dev"
:
"vite"
,
"build"
:
"vue-tsc && vite build"
,
"preview"
:
"vite preview"
"build"
:
"vue-tsc && vite build && node handleHTML.js"
,
"preview"
:
"vite preview"
,
"html"
:
"node handleHTML.js"
},
"dependencies"
:
{
"@vitejs/plugin-legacy"
:
"^4.1.1"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment