Skip to content

Instantly share code, notes, and snippets.

@isaacs
Created February 15, 2012 16:31
Show Gist options
  • Save isaacs/1837112 to your computer and use it in GitHub Desktop.
Save isaacs/1837112 to your computer and use it in GitHub Desktop.
/**package
* { "name": "npm-test-single-file"
* , "main": "index.js"
* , "version": "1.2.3"
* , "description":"No package.json in sight!"
* , "dependencies": { "minimatch": "*" }
* }
**/
module.exports = "I'm just a lonely index, naked as the day I was born."
@Gozala
Copy link

Gozala commented Feb 15, 2012

@issacs

Yeah, that's a contract. We though the fact that it's labeled and not referenced was obvious enough to make people thing of it as JSON typed metadata and not a regular object.

@Gozala
Copy link

Gozala commented Feb 15, 2012

@isaacs BTW I have been planing to implement support for single file modules for npm but in slightly diff way:

meta: ({
  name: 'blabla',
  version: '0.0.1'
})

var streamer = require('!raw.github.com/Gozala/streamer/experimental/promise/core');
// more code

where on install of this module npm will go ahead and place

https://raw.github.com/Gozala/streamer/experimental/promise/core.js into

node_modules/!raw.github.com/Gozala/streamer/experimental/promise/core.js

Would you accept pull request with such a change ?

@isaacs
Copy link
Author

isaacs commented Feb 15, 2012

No, I dont' think it's a good idea for npm to be parsing out require() statements. Pulling out metadata is one thing, but what you'er suggesting is much more involved.

You can just list your dependencies in the metadata.

@Gozala
Copy link

Gozala commented Feb 15, 2012

@isaacs

Yeah makes sense. In fact currently I do this via post-install script which works fine but is kind of painful to have to specify both dependency and scripts per each package. Would be nice if npm had a plugin system for cases like this similar to lein plugins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment