使用vuepress-plugin-sitemap生成vuepress项目sitemap
配置exclude时发现exclude不能满足我的需求, 因此做修改
exclude参数中可以使用
*
进行匹配
/* 正则数组 */
let wildcard = [];
/* 排除两个和两个以上的星号 */
let multipleAsterisks = new RegExp('/\\*{2,}/');
/* 初始化正则数组 */
for (let url of exclude) {
if (multipleAsterisks.test(url)) {
continue;
}
if (url.indexOf("*") > -1) {
wildcard.push(new RegExp("^" + url.replace(/\*/g, ".*") + "$"));
}
}
pagesMap.forEach((page, url) => {
// 改一下这里的判断
let canJoin = true;
for (let reg of wildcard) {
if (reg.test(url)) {
canJoin = false;
break;
}
}
// 加入sitemap判断
if (canJoin && !exclude.includes(url)) {
sitemap.add({
url: withBase(url),
...page
})
}
})
项目中遇到的坑:
forEach
forEach
方法不能continue
和break
replaceAll
js没有replaceAll
方法,使用replace
正则替换
使用npmjs上传包
修改完成后上传到npmjs中
# 检查是否报错
npm install -g
# 登陆npm账户
npm login
# 上传代码到npm包管理库
npm publish