javascript - How can I automatically load all JSON files from a given directory in Webpack? -
this question has answer here:
edit: there an existing question loading multiple files not adequately address how combine json files single object. see answer below. question not duplicate.
i have directory 100 or json files want load js app, bundled via webpack.
i go through initial pain of writing out following:
let data = [     require('json!./mocks/0.json'),     require('json!./mocks/1.json'),     // 2 - 98...     require('json!./mocks/99.json'),     require('json!./mocks/error.json'),     require('json!./mocks/foo.json'), ];   but rather grab automatically don't have update code when add/remove json files directory in future. how can this?
another question details how load multiple dependencies, had add code combine json files single object. working solution:
// filename only. // example: './foo.json' becomes 'foo' function getfilenameonly(filepath) {   return filepath.split('/').pop().split('.').shift(); }  // json! function loadjson() {   const requirecontext = require.context('json!./mocks', false, /\.json$/);   const json = {};   requirecontext.keys().foreach((key) => {     const obj = requirecontext(key);     const simplekey = getfilenameonly(key);     json[simplekey] = obj;   });   return json; }   usage example:
// ./mocks/99.json {     "name": "ninety nine" }   // ./mocks/foo.json {     "name": "bar" }  // app.js let myjson = loadjson(); console.log(myjson['99']);  // > "object{name:'ninety nine'}" console.log(myjson['foo']); // > "object{name:'bar'}"      
Comments
Post a Comment