My responses are inline below. Hopefully this clarifies a few things.

> A few comments.. I'm not sure how this will work for the following scenarios:
> 
> * I'm creating a new package, and would like to include eslint as a default 
> linter. I would also like to get some custom rules working (My understanding 
> is that I would just include custom rules into package.json in this case)

If you are creating a new project and want to get eslint and a custom rule set 
working you would:

* npm install -g eslint (if you haven’t already done so)
* npm install eslint-custom-ruleset —save-dev
* Create your .eslintrc file. (side note: eslint CLI could have a command to 
copy the default eslint.json to .eslintrc OR another yeoman generator could do 
something similar)
* Add the custom rules to your .eslintrc file under the custom rule set’s key, 
like so:

“rules”: {
        ...
},
“custom-ruleset-name”: {
        “custom-rule”: 2
}


> * I'm creating a new package that relies on the package that uses eslint and 
> custom rules. I would like to use that installation of eslint with custom 
> rules, can I do that?

I’m not sure I understand this scenario. What I think you’re asking is this: 
I’m creating ian-project, which relies on ilya-project. ilya-project uses 
eslint and a few custom rule sets. Can ian-project use ilya-project’s 
installation of eslint and the custom rule sets? Under the current proposal, 
no. ian-project would need to have to list and install its dependencies, and 
configure eslint and the rules separately. 

> * I'm writing client-side code and would just like to use eslint + custom 
> rules. I installed eslint globally, where do I do npm install custom-rules 
> from?

If you npm install <custom-ruleset-name> it will install to the node_modules 
directory. Once you’ve added these rules to your .eslintrc file, it will be 
eslint’s responsibility to find and load them from the node_modules directory.

> Also, my other concern is that this method requires modification of 
> eslint.config or .eslintrc file every time I add a new set of rules. It's not 
> a huge problem, but it would be nice if I could instead have a set or rules 
> an eslint.config file that would be merged into main eslint.config on 
> execution. Maybe when executing eslint, I would pass all of the configs in.

I prefer to have all of my rule configurations in one place, but if it seems 
like most people want to have separate configuration files, that could fit with 
this proposal fairly well.

> Thanks,
> 
> Ilya Volodin

Thanks for taking the time to give feedback.

Best,

Ian


> On Monday, December 23, 2013 4:51:14 PM UTC-5, Ian Christian Myers wrote:
> Here’s a rough, high-level proposal for how we could approach incorporating 
> custom rule sets. I would love feedback on whether this is the right 
> direction and, if it is, how it can be improved: 
> 
> https://github.com/nzakas/eslint/wiki/Custom-ESLint-Rule-Sets
> 
> Best,
> 
> Ian
> 
> On Dec 23, 2013, at 8:34 AM, Ian Christian Myers <[email protected]> wrote:
> 
>> Yes! I'll give it a look and see what I can come up with. 
>> 
>> -Ian
>> —
>> Sent from Mailbox for iPhone
>> 
>> 
>> On Mon, Dec 23, 2013 at 8:15 AM, Nicholas Zakas <[email protected]> 
>> wrote:
>> 
>> I agree - that's not fully thought out yet. I'd like to look at how Yeoman 
>> allows you to create generators as a starting point for a model of sharing 
>> rulesets. Do you want to take a look and come up with a proposal for doing 
>> so?
>> 
>> -N
>> 
>> 
>> On Mon, Dec 23, 2013 at 8:10 AM, Ian Christian Myers <[email protected]> 
>> wrote:
>> I've been thinking about this topic recently as well. In addition to 
>> improving the development infrastructure in the ESLint community, I think we 
>> also need to figure out a better way to plug in custom rule sets and keep 
>> them up to date. Right now, the process seems to be checkout a rule set, add 
>> the keys to .eslintrc, point eslint at those rules. But what happens when 
>> I'm using 2 custom rule sets? 3? It can get messy quickly.
>> 
>> Best,
>> 
>> Ian
>> —
>> Sent from Mailbox for iPhone
>> 
>> 
>> On Mon, Dec 23, 2013 at 7:59 AM, Nicholas Zakas <[email protected]> 
>> wrote:
>> 
>> Hi all,
>> 
>> Some thoughts I wanted to share. In thinking about how to move ESLint 
>> forward in 2014, I had some ideas I wanted to share.
>> 
>> I'm hoping and anticipating that people will create custom rulesets that 
>> they will want to share. I can envision people using GitHub to put these 
>> rulesets into repos that are shared by others. I also imagine that these 
>> repos would be setup similar to the main ESLint repo, with rules and tests 
>> for those rules. That also means the workflow for these repos would be 
>> similar to those of creating new rules for ESLint itself.
>> 
>> I can also envision similar things for formatters (we're already seeing a 
>> bit of that).
>> 
>> So, what do we need to do enable this use case and make things more 
>> efficient? Here's what I have in mind:
>> 
>> 1) Separate out ESLint Tester into its own npm package. That way, it's easy 
>> for custom rulesets to use it to write tests.
>> 2) Create a Yeoman generator that will scaffold out rules and formatters, as 
>> well as rulesets, including appropriate test and documentation stubs.
>> 3) Create an ESLint organization on GitHub under which these three projects 
>> (including the main ESLint repo) are located.
>> 
>> I think this will make ESLint easier to use and, hopefully, encourage more 
>> people to participate in its development.
>> 
>> Thoughts?
>> 
>> 
>> 
>> 
>> -- 
>> 
>> ______________________________
>> Nicholas C. Zakas
>> @slicknet
>> 
>> Author, Professional JavaScript for Web Developers
>> Buy it at Amazon.com: 
>> http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=sr_1_3
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "ESLint" 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.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "ESLint" 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.
>> 
>> 
>> 
>> -- 
>> 
>> ______________________________
>> Nicholas C. Zakas
>> @slicknet
>> 
>> Author, Professional JavaScript for Web Developers
>> Buy it at Amazon.com: 
>> http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=sr_1_3
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "ESLint" 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.
>> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "ESLint" 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.

-- 
You received this message because you are subscribed to the Google Groups 
"ESLint" 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