1 Star 0 Fork 0

jiabinleo / 升学中心题库

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
webpack.pages.js 4.88 KB
一键复制 编辑 原始数据 按行查看 历史
jiabinleo 提交于 2023-06-19 10:03 . wap端增加学生信息
const HtmlWebpackPlugin = require("html-webpack-plugin");
const Mock = require('mockjs')
const fs = require("fs")
const glob = require("glob")
function getEntry() {
var entry = [];
let exporthtml = "cat4grade1"
glob.sync('./src/pages/*/*/index.ts')
.forEach(function (file) {
let template = file.split("pages/")[1].split("/index.ts")[0].replace("/", "_");
let template_ = file.split("pages/")[1].split("/index.ts")[0].split("/")[0];
if (exporthtml) {
if (template_ == exporthtml) {
entry.push(template)
}
} else {
entry.push(template)
}
});
return entry;
};
console.log(getEntry())
const pages = getEntry();
let htmlTemplate = [];
let entry = {};
let data = {}
const defaultTemplate = [];
const defaultEntry = {};
const defaultData = {}
for (let index = 0; index < pages.length; index++) {
let page = pages[index];
entry[page] = `./src/pages/${page.split("_")[0]}/${page.split("_")[1]}/index.ts`
data[page] = `./src/pages/${page.split("_")[0]}/${page.split("_")[1]}/mock.js`
htmlTemplate.push(new HtmlWebpackPlugin({
template: `./src/pages/${page.split("_")[0]}/${page.split("_")[1]}/index.ejs`,
hash: false,
minify: {
caseSensitive: true, //以大小写敏感的方式处理属性 (对自定义html标签很有用)
collapseWhitespace: true, //去除空格对文本节点有益
keepClosingSlash: true, //保留单个元素的尾部斜杠
removeComments: true, //删除html注释
removeRedundantAttributes: false, //删除属性,如果它的值和默认值一致.
removeScriptTypeAttributes: true, //删除script标签上的type="text/javascript" . 否则 type 属性值会保留
removeStyleLinkTypeAttributes: true, //删除style标签的type="text/css" 否则 type 属性值会保留
useShortDoctype: true, //使用html5 简短的doctype
continueOnParseError: true, //处理解析错误 而不是终止
minifyJS: true,
minifyCSS: true,
preserveLineBreaks: false,//保留标签之间有1个空行. 必须和 collapseWhitespace=true一起使用
sortAttributes: true,
sortClassName: true,
trimCustomFragments: false//删除ignoreCustomFragments两端空白.
},
inject: "body",
filename: `${page}.html`,
xhtml: true,
showErrors: true,
chunks: [page]
}))
}
for (const key in data) {
if (Object.hasOwnProperty.call(data, key)) {
fs.access(data[key], (err) => {
if (!err) {
let file = require(data[key])
for (let i = 0; i < pages.length; i++) {
if (pages[i].template == key) {
pages[i].mock = true
}
}
fs.writeFile(data[key].split(".js")[0] + ".json", JSON.stringify(Mock.mock(file)), function (err) {
if (err) {
console.error(`${key}创建失败`);
return console.log(err)
}
})
}
})
}
}
setTimeout(() => {
console.table(pages)
}, 3000)
let defaultpages = ['login', 'state'];
for (let s = 0; s < defaultpages.length; s++) {
entry[defaultpages[s]] = `./src/pages/${defaultpages[s]}/index.ts`;
htmlTemplate.push(new HtmlWebpackPlugin({
template: `./src/pages/${defaultpages[s]}/index.ejs`,
hash: false,
minify: {
caseSensitive: true, //以大小写敏感的方式处理属性 (对自定义html标签很有用)
collapseWhitespace: true, //去除空格对文本节点有益
keepClosingSlash: true, //保留单个元素的尾部斜杠
removeComments: true, //删除html注释
removeRedundantAttributes: false, //删除属性,如果它的值和默认值一致.
removeScriptTypeAttributes: true, //删除script标签上的type="text/javascript" . 否则 type 属性值会保留
removeStyleLinkTypeAttributes: true, //删除style标签的type="text/css" 否则 type 属性值会保留
useShortDoctype: true, //使用html5 简短的doctype
continueOnParseError: true, //处理解析错误 而不是终止
minifyJS: true,
minifyCSS: true,
preserveLineBreaks: false,//保留标签之间有1个空行. 必须和 collapseWhitespace=true一起使用
sortAttributes: true,
sortClassName: true,
trimCustomFragments: false//删除ignoreCustomFragments两端空白.
},
inject: "body",
filename: `${defaultpages[s]}.html`,
xhtml: true,
showErrors: true,
chunks: [defaultpages[s]]
}))
}
module.exports = {
entry,
htmlTemplate
}
JavaScript
1
https://gitee.com/jiabinleo/tiku.git
git@gitee.com:jiabinleo/tiku.git
jiabinleo
tiku
升学中心题库
main

搜索帮助