Skip to content
This repository was archived by the owner on Nov 23, 2024. It is now read-only.

EslintValidationFilter can only handle one:* broccoli nodes, but part of the given input pipeline is a many:* node. (broccoli-merge-trees is an example of a many:* node) Please perform many:* operations after linting. #56

Closed
systembugtj opened this issue Apr 19, 2016 · 12 comments

Comments

@systembugtj
Copy link

Not sure what's that meaning, we do use the merges tree to merge some code in.

But not sure what's exactly the meaning of this message.

@alexlafroscia
Copy link
Collaborator

Hey @systembugtj, can you attach your Broccoli config in here so I can take a look at it?

This issue stems from the way that broccoli-lint-eslint functions; it's the one that does not allow many:* nodes. For people using this addon the recommended way, this shouldn't be an issue, but I'm really interested to see what you're doing in hopes that we can make more complex setups work out-of-the-box as well.

@runspired
Copy link

Hit this tonight. The primary issue here is that this prevents you from ever being able to build a complex app tree.

In my case, I have a tree that is a single file being added to the app tree. However, this single file tree is the product of a complex build step that merges together many available addon trees. Because there is a mergeTree in this graph at all, this error is thrown.

@akondo06
Copy link

akondo06 commented Jan 9, 2018

Hi, I have encountered the same issue when using mergeTrees. In my ember-cli-build file I have 2 EmberApp instances: one being the app folder and second app + admin folder (more info here ember-cli/ember-cli#6887). Any update on the issue or a workaround?

@pzuraq
Copy link

pzuraq commented Feb 17, 2018

Ran into this today as well, my use case was trying to automatically generate some tests in a different language (TypeScript) to validate that my library works with TS (it uses decorators, they compile differently, etc.). It's definitely an advanced use case, but is there a compelling reason to handle many trees?

@Turbo87
Copy link
Member

Turbo87 commented Feb 17, 2018

@pzuraq if I understand correctly it is currently a limitation of broccoli-lint-eslint, so the issue should actually be opened over there instead. That said, PRs to fix it are certainly welcome 😉

@pzuraq
Copy link

pzuraq commented Feb 17, 2018

Looks like there's an open PR already: ember-cli/broccoli-lint-eslint#122

@willviles
Copy link

This seems to be a bit of a blocking issue when trying to work with Module Unification's src tree.

app.trees.src = new MergeTrees([app.trees.src, newTree])

Errors with:

EslintValidationFilter can only handle one:* broccoli nodes, but part of the given input pipeline is a many:* node. (broccoli-merge-trees is an example of a many:* node) Please perform many:* operations after linting.

Is there any workaround until ember-cli/broccoli-lint-eslint#122 is merged?

@rwjblue
Copy link
Member

rwjblue commented Jul 24, 2018

@willviles - I am (personally) of the mind to simply remove ember-cli-eslint from apps/addons, and use eslint directly in CI from the yarn lint:js script. In editor feedback (via eslint integration) is much faster/better than the generated tests, and ultimately not including ember-cli-eslint in the app means builds/rebuilds are a bit faster...

@gossi
Copy link

gossi commented Jul 26, 2018

@willviles it doesn't work to merge trees in blank ember-cli-build.js. You mentioned app.trees.src = new MergeTree(...); is the error to that.

A workaround - which nobody should really do - is to extend the getSrc method and funnel your stuff in there, see my example at ember-cli/ember-cli#7862

Turbo87 pushed a commit that referenced this issue Nov 12, 2018
Bumps [ember-load-initializers](https://github.com/ember-cli/ember-load-initializers) from 1.1.0 to 2.0.0.
<details>
<summary>Changelog</summary>

*Sourced from [ember-load-initializers's changelog](https://github.com/ember-cli/ember-load-initializers/blob/master/CHANGELOG.md).*

> ## v2.0.0 (2018-10-29)
> 
> #### 💥 Breaking Change
> * [#57](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/pull/57) Update ember-cli-babel to 7. ([[**rwjblue**](https://github.com/rwjblue)](https://github.com/rwjblue))
> * [#56](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/pull/56) Drop support for Node 4 ([[**loganrosen**](https://github.com/loganrosen)](https://github.com/loganrosen))
> * [#56](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/pull/56) Drop support for ember-cli prior to 2.12 ([[**loganrosen**](https://github.com/loganrosen)](https://github.com/loganrosen))
> 
> #### 🚀 Enhancement
> * [#56](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/pull/56) Modernize to Ember CLI 3.5 blueprint ([[**loganrosen**](https://github.com/loganrosen)](https://github.com/loganrosen))
> 
> #### 📝 Documentation
> * [#55](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/pull/55) Fixing url typo ([[**thoov**](https://github.com/thoov)](https://github.com/thoov))
> 
> #### Committers: 3
> - Logan Rosen ([[**loganrosen**](https://github.com/loganrosen)](https://github.com/loganrosen))
> - Robert Jackson ([[**rwjblue**](https://github.com/rwjblue)](https://github.com/rwjblue))
> - Travis Hoover ([[**thoov**](https://github.com/thoov)](https://github.com/thoov))
</details>
<details>
<summary>Commits</summary>

- [`64b8250`](ember-cli/ember-load-initializers@64b8250) 2.0.0
- [`d264384`](ember-cli/ember-load-initializers@d264384) Add v2.0.0 to CHANGELOG.md.
- [`d239f3b`](ember-cli/ember-load-initializers@d239f3b) Remove unused legacy shim.
- [`04562fd`](ember-cli/ember-load-initializers@04562fd) Add lerna-changelog to devDependencies.
- [`954f2bb`](ember-cli/ember-load-initializers@954f2bb) Merge pull request [#57](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/issues/57) from rwjblue/update-ember-cli-babel
- [`ecb54ae`](ember-cli/ember-load-initializers@ecb54ae) Update ember-cli-babel to 7.
- [`438eb56`](ember-cli/ember-load-initializers@438eb56) Merge pull request [#56](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/issues/56) from loganrosen/master
- [`c98aede`](ember-cli/ember-load-initializers@c98aede) Modernize to Ember 3.5
- [`e167ab4`](ember-cli/ember-load-initializers@e167ab4) Merge pull request [#55](https://github-redirect.dependabot.com/ember-cli/ember-load-initializers/issues/55) from thoov/thoov-patch-1
- [`ec54edd`](ember-cli/ember-load-initializers@ec54edd) Fixing url typo
- See full diff in [compare view](ember-cli/ember-load-initializers@v1.1.0...v2.0.0)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ember-load-initializers&package-manager=npm_and_yarn&previous-version=1.1.0&new-version=2.0.0)](https://dependabot.com/compatibility-score.html?dependency-name=ember-load-initializers&package-manager=npm_and_yarn&previous-version=1.1.0&new-version=2.0.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
@houfeng0923
Copy link

houfeng0923 commented Mar 21, 2020

execute me, any body here ?

and , why app.trees.app not allow MergeTrees ?

recently , i have to build a complex project with two app* folders ,
and how to pass eslint validation?

@rwjblue
Copy link
Member

rwjblue commented Mar 21, 2020

execute me, any body here ?

yep 😸

and , why app.trees.app not allow MergeTrees ?

Because, due to the way the build system works, there is no way to determine the original on-disk path to a file. The original on disk path is really important for running eslint because there are many different ways to configure files in eslint (e.g. combining config files through a file heirarchy, many different extensions of config file, etc).

recently , i have to build a complex project with two app* folders ,and how to pass eslint validation?

Good news, the latest ember-cli blueprints avoid this issue entirely. 🎉

I'd suggest you (and anyone else with this issue) review the changes for [email protected], and use eslint directly. See this commit for a nice summary of the changes to the blueprint.

@rwjblue
Copy link
Member

rwjblue commented Mar 21, 2020

Given that our recommendation at this point is to not use this library, I'm going to close this issue...

@rwjblue rwjblue closed this as completed Mar 21, 2020
jonathanperret added a commit to 1024pix/pix that referenced this issue Dec 16, 2020
Since we launch eslint separately it is redundant to build and
execute tests that run it again.

The official recommendation is to no longer use ember-cli-eslint:
ember-cli/ember-cli-eslint#56 (comment)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests