1

I want users of my module to be able to customize its behavior by specifying a custom field in package.json but can't figure out how to read it synchronously. If I wanted to read someField out of the package.json of an app or module using my module, how would I do that?

  • Please, see my answer to a similar question [here][1]. [1]: http://stackoverflow.com/a/22339262/1860357 – jchristin Mar 12 '14 at 00:06

2 Answers2

3
var pjson = require('./package.json');
console.log(pjson.yourcustomfield);

adopted from another SO question.

Community
  • 1
  • 1
tomdemuyt
  • 4,572
  • 2
  • 31
  • 60
  • You can omit the `.json` filename extension if you want so it can be .json, .js, .coffee, etc. – Peter Lyons Nov 21 '13 at 00:55
  • No, that reads it from my own package. If you imagine my package is called `guest`, and it is being used by an app called `host`, I want to access the field defined in host's package.json, form the code running in my guest module. – bclinkinbeard Nov 21 '13 at 01:20
  • Looks like resolving that path gets the right behavior. Anyone see a problem with this? `require(require('path').resolve('./package.json')).someField` – bclinkinbeard Nov 21 '13 at 01:28
  • @bclinkinbeard it looks good, though I would worry about rogue guests that want to ruin my file system. – tomdemuyt Nov 21 '13 at 13:51
1

Use fs.readFileSync node.js method of the fs module to read the file synchronously.

Alex Netkachov
  • 13,172
  • 6
  • 53
  • 85