> Sorry for resurrecting an old thread, but have you considered using JSON5 (
> https://github.com/aseemk/json5)?
> Author's rationale:
>

Nothing to be sorry about, the issue still exists, and there is no widely 
accepted solution in the community. 

Yes, json5 will solve this nicely if it was accepted as a possible package 
info format in npm packages. But it doesn't seem to be happening soon.

Personally, I solved it using yaml language (and package.yaml files in a 
project), and yapm module (https://github.com/rlidwka/yapm), it's a wrapper 
around npm to convert it to json format on the fly.


On Wednesday, October 2, 2013 12:02:08 PM UTC+4, Dmitry Pashkevich wrote:

> JSON isn't the friendliest to *write*. Keys need to be quoted, objects 
>> and arrays can't have trailing commas, and comments aren't allowed — even 
>> though none of these are the case with regular JavaScript today.
>>
>> That was fine when JSON's goal was to be a great data format, but JSON's 
>> usage has expanded beyond*machines*. JSON is now used for writing 
>> configs<http://plovr.com/docs.html>
>> , manifests <http://npmjs.org/doc/json.html>, even 
>> tests<http://code.google.com/p/fuzztester/wiki/JSONFileFormat> — 
>> all by *humans*.
>>
>> There are other formats that are human-friendlier, like YAML, but 
>> changing from JSON to a completely different format is undesirable in many 
>> cases. JSON5’s aim is to remain close to JSON and JavaScript.
>>
>
> All this while:
>
>> JSON5 remains a *strict subset of JavaScript*, adds *no new data types*, 
>> and *works with all existing JSON content*.
>>
>
>
> On Saturday, January 5, 2013 10:22:06 PM UTC+4, Alex Kocharin wrote:
>>
>> Hello, everybody. 
>>
>>
>> TL;DR: I think that JSON is not a suitable config file format, and I want 
>> npm to be able to read configs stored in some other way by default. It 
>> might be just javascript, or yaml, I don't really care as long as it better 
>> for configuration files than json. 
>>
>>
>> So, there is a dependency list in package.json, and it would be a good 
>> practice to have a comment for every line describing why we require that 
>> package, why we require that version of that package, what known problems 
>> we have and so on. 
>>
>> But there's a small issue. JSON format doesn't allow comments in any way. 
>>
>> Right now there are a couple of different ways around it of course: 
>>
>> 1. Non-standard JSON entries like "@comment": "blablabla". Unfortunately, 
>> javascript editors doesn't highlight it as a comment, and it's just plain 
>> ugly. Also this violates strict javascript mode, so God knows what trouble 
>> it'll cause in the future. 
>> 2. Keep a commented dependency list in a separate file. This violates DRY 
>> principle, so we could update one file and forget to update another. The 
>> same goes for /**package **/ hack I believe. 
>> 3. Use some kind of build system. Just for damn comments in one file? 
>>
>> Also, there's another wrong thing with JSON, it's too strict. You can't 
>> omit double quotes from keys, you can't leave a trailing comma, etc. JSON 
>> is human-readable, but it's just not damn human-writable. 
>>
>> Well... I went for 3rd option for a very long time. We used package.js 
>> file and a Makefile that compile js to json. Yes, that's three damn files 
>> instead of one. That's an example of our package.js file. 
>> https://gist.github.com/4462764 . But a number of supported packages 
>> grew, and compiling this slowly became a major pain in the ass. I recently 
>> got an issue when I updated package.js, but forgot to compile it, and 
>> debugging this one was a quite interesting experience. So, I'm now in a 
>> mood of forking things and making all my public packages incompatible with 
>> mainstream npm... 
>>
>>
>> So, there's a couple of alternatives. For example, Travis use YAML, and 
>> there is CSON (it's coffeescript version with blackjack and hookers). 
>>
>> And I think there was a couple of discussions about it. So, did anybody 
>> come up with more or less sane idea how to deal with this? What happened to 
>> package.json.js? 
>>
>>
>> Happy New Year! 
>>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to