0.2.1 • Published 8 years ago
multi-json-loader v0.2.1
Aggregating JSON file loader for webpack
Install
npm install multi-json-loaderUsage
./data/places.json
{
"placesKey": "places value"
}./data/users/account.json
{
"accountKey": "account value"
}./data/users/profile.json
{
"profileKey": "profile value"
}./irrelevant.whatever
/* Doesn't matter */example.js
var data = require('multi-json-loader?cwd=data&glob=**/*.json!./irrelevant.whatever');
// => {
// places: {
// placesKey: "places value"
// },
// users: {
// account: {
// accountKey: "account value"
// },
// profile: {
// profileKey: "profile value"
// }
// }
// }Note that because I don't understand webpack enough, you have to provide a valid resource file (./irrelevant.whatever above) even though it won't actually be loaded.
Without webpack
You can also use the loader's functionality independent of webpack.
var multiJsonLoader = require('multi-json-loader');
var messages = multiJsonLoader.loadFiles('./i18n' /*, optional glob - defaults to '*.json'*/);
console.log(messages);
// => { a: { 'a-key': 'a-value' }, b: { 'b-key': 'b-value' } }See no-webpack-example subdirectory.
Options
cwdThe current working directory in which to search. Defaults toprocess.cwd().globGlob to match files against usingnode-glob. Defaults to*.json.
Why not combine the two options?
Path parts in cwd will not be included in the aggregated JSON object, whereas path parts in glob will.
var data = require('multi-json-loader?cwd=a/b&glob=c/*.json!./irrelevant.whatever');
// => {
// c: {
// <contents of c directory>
// }
// }var data = require('multi-json-loader?glob=a/b/c/*.json!./irrelevant.whatever');
// => {
// a: {
// b: {
// c: {
// <contents of c directory>
// }
// }
// }
// }License
MIT