3 ms·
> Points (2) and (3) are fact and not opinion. None of your points are facts. > And it's clearly not an opinion that many large JavaScript projects are follow
by camus2 9y ago
> Points (2) and (3) are fact and not opinion.
None of your points are facts.
> And it's clearly not an opinion that many large JavaScript projects are following this practice. I linked to 'React' itself as proof of this...
React isn't that large of a project. It has a lot of contributors, it doesn't make its codebase large.
- lhnz 9y agoSure they are. > 2) the require/import paths are not like '../../../../../' (which is awkward to reason about) > or requiring alias resolver configurations (which are environment-specific and fragile) Compare writing an import path within a test of `import Button from '../Button'` to `import Button from '../../../../src/features/abc/components/Button'`. The latter requires you to count the directories in the path and replace each with '..'. This is a pointless waste of mental energy, and the former solution removes the need to do it. The other solution as I described is to use things like aliases but this causes you to create complex configuration for your tests [0] which must be maintained and means your test are now dependent on this environment. If this is just an opinion, please demonstrate that it's incorrect. > (3) you are not maintaining an extra directory > structure which could diverge by accident. You are suggesting to me that `src/features/abc/components/Button.js` and `test/features/abc/components/Button.js` are not separate file-system structures which can diverge? Because they are separate directory structures it is possible for them to diverge. This is a basic implication from the fact that they are separate structures. If somebody moves `src/features/abc/components/Button.js` to `src/features/def/components/Button.js` you are telling me that you will not need to make any changes at all to `test/features/abc/components/Button.js`? [0] https://github.com/trayio/babel-plugin-webpack-alias/issues/8 https://github.com/trayio/babel-plugin-webpack-alias/issues/...