Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Z_04_syys
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
template admin
Z_04_syys
Commits
c9a2e803
Commit
c9a2e803
authored
Aug 19, 2020
by
huoshizhe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 自动打包
parent
800bd5ab
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
176 additions
and
20 deletions
+176
-20
.gitignore
.gitignore
+1
-0
publish_2.js
form/bin/publish_2.js
+115
-0
package.json
form/package.json
+1
-0
build.bat
publish/build.bat
+2
-2
build.js
publish/build.js
+57
-18
No files found.
.gitignore
View file @
c9a2e803
/publish/form
/publish/play
/publish/node_modules
form/bin/publish_2.js
0 → 100644
View file @
c9a2e803
/****
* 批量编译打包模板工具
* 运行 npm run publish T_01 命令来打包T_01模板
* 运行 npm run publish T_01,T_02,T_03,T_04 命令来分别打包 T_01,T_02,T_03,T_04 这四个模板,注意逗号要用英文的
* 运行 npm run publish all 命令来打包所有模板
*/
const
spawn
=
require
(
'
child_process
'
).
spawn
;
const
path
=
require
(
"
path
"
);
const
fs
=
require
(
"
fs
"
);
const
os
=
require
(
'
os
'
);
const
compressing
=
require
(
"
compressing
"
);
//Linux系统上'Linux'
//macOS 系统上'Darwin'
//Windows系统上'Windows_NT'
let
sysType
=
os
.
type
();
Date
.
prototype
.
Format
=
function
(
fmt
)
{
var
o
=
{
"
M+
"
:
this
.
getMonth
()
+
1
,
"
d+
"
:
this
.
getDate
(),
"
h+
"
:
this
.
getHours
(),
"
m+
"
:
this
.
getMinutes
(),
"
s+
"
:
this
.
getSeconds
(),
"
q+
"
:
Math
.
floor
((
this
.
getMonth
()
+
3
)
/
3
),
"
S
"
:
this
.
getMilliseconds
()
};
if
(
/
(
y+
)
/
.
test
(
fmt
))
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
this
.
getFullYear
()
+
""
).
substr
(
4
-
RegExp
.
$1
.
length
));
for
(
var
k
in
o
)
if
(
new
RegExp
(
"
(
"
+
k
+
"
)
"
).
test
(
fmt
))
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
RegExp
.
$1
.
length
==
1
)
?
(
o
[
k
])
:
((
"
00
"
+
o
[
k
]).
substr
((
""
+
o
[
k
]).
length
)));
return
fmt
;
}
function
clean
(
zipPath
){
if
(
fs
.
existsSync
(
zipPath
)){
fs
.
unlinkSync
(
zipPath
);
}
}
const
runSpawn
=
async
function
(){
await
new
Promise
(
function
(
resolve
,
reject
){
let
pkg
=
require
(
"
../package.json
"
);
let
ls
;
if
(
sysType
===
"
Windows_NT
"
){
//ng build --prod --build--optimizer --base-href /ng-one/
ls
=
spawn
(
"
cmd.exe
"
,
[
'
/c
'
,
'
ng
'
,
'
build
'
,
'
--prod
'
,
'
--build--optimizer
'
,
'
--base-href
'
,
'
/template-base-href/
'
]
);
}
else
{
ls
=
spawn
(
"
ng
"
,
[
'
build
'
,
'
--prod
'
,
'
--build--optimizer
'
,
'
--base-href
'
,
'
/template-base-href/
'
]
);
}
ls
.
stdout
.
on
(
'
data
'
,
(
data
)
=>
{
console
.
log
(
`
${
data
}
`
);
});
ls
.
stderr
.
on
(
'
data
'
,
(
data
)
=>
{
console
.
log
(
`stderr:
${
data
}
`
);
reject
();
});
ls
.
on
(
'
close
'
,
(
code
)
=>
{
console
.
log
(
`child process exited with code
${
code
}
`
);
//要压缩的目录
let
zippath
=
path
.
resolve
(
__dirname
,
"
../dist
"
,
pkg
.
name
);
//压缩包的存放目录
let
date
=
new
Date
();
// let zipname = pkg.name+"_"+date.Format("yyyyMMdd hh-mm-ss");
let
zipname
=
'
form
'
;
let
zipdir
=
path
.
resolve
(
__dirname
,
"
../publish/
"
+
zipname
+
"
.zip
"
);
clean
(
zipdir
);
//删除原有的包
const
tarStream
=
new
compressing
.
zip
.
Stream
();
fs
.
readdir
(
zippath
,
function
(
err
,
files
){
if
(
err
){
console
.
log
(
"
======文件打开异常======
"
);
console
.
log
(
err
);
reject
();
}
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
){
tarStream
.
addEntry
(
zippath
+
"
/
"
+
files
[
i
]);
}
let
writeStream
=
fs
.
createWriteStream
(
zipdir
);
tarStream
.
pipe
(
writeStream
);
writeStream
.
on
(
'
close
'
,
()
=>
{
console
.
log
(
`模板
${
pkg
.
name
}
打包已完成!`
);
resolve
();
})
});
});
});
}
// let projects = "";
// if(process.argv.length<3){
// console.log("缺少参数");
// return;
// }
// projects = process.argv[2];
let
exec
=
async
function
(){
//压缩模板
await
runSpawn
();
}
exec
();
form/package.json
View file @
c9a2e803
...
...
@@ -5,6 +5,7 @@
"start"
:
"ng serve"
,
"build"
:
"ng build --build--optimizer --aot --base-href /JGT/v3/"
,
"publish"
:
"node ./bin/publish.js"
,
"publish_2"
:
"node ./bin/publish_2.js"
,
"ng"
:
"ng"
,
"test"
:
"ng test"
,
"lint"
:
"ng lint"
,
...
...
publish/build.bat
View file @
c9a2e803
cd ../form
REM
npm run publish_2
npm run publish_2
cd ../play
CocosCreator.exe --path "./" --build "configPath=../publish/buildConfig.json" --force
cd ../publish
node build.js
pause
publish/build.js
View file @
c9a2e803
...
...
@@ -9,22 +9,61 @@ function fix2(num) {
}
}
fs
.
readdir
(
'
../play/build
'
,
{
withFileTypes
:
true
},
(
err
,
files
)
=>
{
if
(
files
.
length
===
1
&&
files
[
0
].
isDirectory
())
{
async
function
initFiles
()
{
const
formExists
=
await
fs
.
existsSync
(
'
./publish/form
'
);
if
(
formExists
)
{
await
fs
.
rmdirSync
(
'
./publish/form
'
);
}
}
async
function
main
()
{
let
date
=
new
Date
();
let
fileName
=
`Release_
${
date
.
getFullYear
()}${
fix2
(
date
.
getMonth
()
+
1
)}${
fix2
(
date
.
getDate
())}
`
;
fileName
+=
`
${
fix2
(
date
.
getHours
())}
-
${
fix2
(
date
.
getMinutes
())}
-
${
fix2
(
date
.
getSeconds
())}
.zip
`
;
fileName
+=
`
${
fix2
(
date
.
getHours
())}
-
${
fix2
(
date
.
getMinutes
())}
-
${
fix2
(
date
.
getSeconds
())}
`
;
fs
.
mkdir
(
'
publish
'
,
{
recursive
:
true
},
(
err
)
=>
{
if
(
err
)
throw
err
;
await
initFiles
();
compressing
.
zip
.
compressDir
(
`build/web-desktop/scene-resource/
${
files
[
0
].
name
}
/`
,
`publish/
${
fileName
}
`
)
compressing
.
zip
.
uncompress
(
'
../form/publish/form.zip
'
,
'
./publish/form
'
)
.
then
(()
=>
{
console
.
log
(
'
打包成功!
'
);
})
.
catch
(
err
=>
{
console
.
error
(
err
);
});
const
tarStream
=
new
compressing
.
zip
.
Stream
();
tarStream
.
addEntry
(
'
../play/build/web-desktop
'
);
tarStream
.
addEntry
(
'
./publish/form
'
);
const
destStream
=
fs
.
createWriteStream
(
`publish/
${
fileName
}
.zip`
);
tarStream
.
pipe
(
destStream
);
});
}
});
\ No newline at end of file
}
main
();
// var copy = async function (src, dst) {
// //读取目录
// const paths = await fs.readdirSync(src);
// paths.forEach(async function (path) {
// const newSrc = `${src}/${path}`;
// const newDst = `${dst}/${path}`;
// const st = await fs.statSync(newSrc);
// if (st.isFile()) {
// const data = await fs.readFileSync(newSrc);
// await fs.writeFileSync(newDst, data);
// } else if (st.isDirectory()) {
// exists(newSrc, newDst, copy);
// }
// });
// }
// var exists = function (src, dst, callback) {
// //测试某个路径下文件是否存在
// fs.exists(dst, function (exists) {
// if (exists) {//不存在
// callback(src, dst);
// } else {//存在
// fs.mkdir(dst, function () {//创建目录
// callback(src, dst)
// })
// }
// })
// }
// exists('../from', '../to', copy)
\ No newline at end of file
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