pug-site-core 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/generate.js +10 -11
  2. package/package.json +2 -2
package/lib/generate.js CHANGED
@@ -44,7 +44,7 @@ export async function compilePagesPugToFn(pugPath) {
44
44
  pagesPugFilePathArr.filter(
45
45
  (fileName) => !pugPath || pathIsSame(pugPath, fileName)
46
46
  ),
47
- 10, // 限制并发数为10
47
+ 12, // 限制并发数为10
48
48
  async (fileName) => {
49
49
  const filePath = paths.resolveRoot(paths.template.pages, fileName);
50
50
  const funName = fileName.split(pathSymbol).join("_").slice(0, -4);
@@ -201,7 +201,7 @@ export async function fetchDataToJsonFile(args) {
201
201
  // 创建一个全局任务队列控制整体并发数
202
202
  const queue = async.queue(async (task) => {
203
203
  await task();
204
- }, fetchDataConcurrencyLimit || 10);
204
+ }, fetchDataConcurrencyLimit || 12);
205
205
 
206
206
  // 收集所有需要执行的任务
207
207
  const allTasks = [];
@@ -221,8 +221,8 @@ export async function fetchDataToJsonFile(args) {
221
221
  const commonFuncName = "get_common_data";
222
222
  if (isFillFun(commonFuncName)) {
223
223
  allTasks.push(async () => {
224
- const commonData = await getData[commonFuncName](language);
225
224
  console.log(language, commonFuncName, "开始写入json文件");
225
+ const commonData = await getData[commonFuncName](language);
226
226
  await fse.outputJSON(
227
227
  paths.resolveRoot("jsonData", language, "_common.json"),
228
228
  commonData
@@ -251,17 +251,17 @@ export async function fetchDataToJsonFile(args) {
251
251
  }
252
252
 
253
253
  allTasks.push(async () => {
254
+ console.log(language, obj.getDataFn, "开始写入json文件");
254
255
  let data = await dataFn(language);
255
256
  await checkData(data, language, obj.getDataFn);
256
- console.log(language, obj.getDataFn, "开始写入json文件");
257
257
  let outPutPath = obj.outPutPath.split("/").join(pathSymbol);
258
258
  if (Array.isArray(data)) {
259
259
  let name = outPutPath.split(pathSymbol).pop().replace(/\..*$/, "");
260
260
  const regex = /^\[.+\]$/;
261
261
  if (regex.test(name)) {
262
262
  let property = name.slice(1, -1);
263
- for (let index = 0; index < data.length; index++) {
264
- const dataItem = data[index];
263
+ // 使用async.eachLimit替换for循环,并发写入
264
+ await async.eachLimit(data, 12, async (dataItem, index) => {
265
265
  let fileName = dataItem[property];
266
266
  if (!fileName) {
267
267
  return Promise.reject(
@@ -274,7 +274,7 @@ export async function fetchDataToJsonFile(args) {
274
274
  paths.join(language, outPutPath.replace(name, fileName)),
275
275
  dataItem
276
276
  );
277
- }
277
+ });
278
278
  } else {
279
279
  await saveJsonData(paths.join(language, outPutPath), data);
280
280
  }
@@ -300,12 +300,11 @@ export async function fetchDataToJsonFile(args) {
300
300
  }
301
301
 
302
302
  allTasks.push(async () => {
303
+ console.log(language, funName, "开始写入json文件");
303
304
  let data = await getData[funName](language);
304
305
  await checkData(data, language, funName);
305
- console.log(language, funName, "开始写入json文件");
306
306
  if (Array.isArray(data)) {
307
- for (let index = 0; index < data.length; index++) {
308
- const item = data[index];
307
+ await async.eachLimit(data, 12, async (item, index) => {
309
308
  let lastJsonFilePath;
310
309
  if (item.page_name) {
311
310
  lastJsonFilePath = paths.join(
@@ -323,7 +322,7 @@ export async function fetchDataToJsonFile(args) {
323
322
  }
324
323
  item._template = fileName;
325
324
  await saveJsonData(lastJsonFilePath, item);
326
- }
325
+ });
327
326
  } else {
328
327
  if (data.page_name) {
329
328
  jsonFilePath = paths.join(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pug-site-core",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -37,7 +37,7 @@
37
37
  "axios": "^1.7.7"
38
38
  },
39
39
  "license": "ISC",
40
- "description": "去掉调试log",
40
+ "description": "优化并发写入json文件",
41
41
  "files": [
42
42
  "lib/",
43
43
  "index.js"