首页 > 解决方案 > 构造包含项目字典的javascript对象

问题描述

我(重新)编写了一个脚本,该脚本生成一个包含项目字典的 javascript 对象。

它生成以下格式的输出

{"Item":158567,"Crumb":23525076,"Utilities":62648}

但是,我的初始脚本(我似乎已经丢失了)以这种格式生成了输出,这对我来说更有用。

{"sizes":{"Item":158567,"Crumb":23525076,"Utilities":62648}}

如何修改以下脚本以便能够获得此输出?唯一的区别是,我希望出现“尺寸”这个词

var fs = require('fs');

var path = '../apps/test-app/dist';
var sizes = {};
var outputFilePath = '../apps/test-app/dist/sizes.json';

fs.readdir(path, function(err, items) {
  for (var i = 0; i < items.length; i++) {
    var file = path + '/' + items[i];

    const isJavascriptFile = items[i].match(/.js$/);
    if (isJavascriptFile) {
      var fileName = getComponentName(items[i]);
      var fileSize = getFilesizeInBytes(file);
      sizes[fileName] = fileSize;
    }
  }

  fs.writeFileSync(outputFilePath, JSON.stringify(sizes));
});

function getFilesizeInBytes(fileName) {
  const stats = fs.statSync(fileName);
  const fileSizeInBytes = stats.size;
  return fileSizeInBytes;
}

function getComponentName(fileName) {
  return fileName.match('ui-(.*).min.js')[1];
}

标签: javascriptjson

解决方案


换行:

fs.writeFileSync(outputFilePath, JSON.stringify(sizes));

fs.writeFileSync(outputFilePath, JSON.stringify({ sizes }));

注意周围的{ }sizes


推荐阅读