Comments (4)
FWIW my recent refactor was mainly based on these ideas:
http://angular-tips.com/blog/2015/06/using-angular-1-dot-x-with-es6-and-webpack/
I basically have several files per module, let's say home module:
- index.js: Entry point for CommonJS. Load dependencies for the module.
- home.routes.js: Route(s)
- home.controller.js: Component's controller (ES6 class)
- home.html: Template
- home.css: Stylesheet
As for directives I still use functions as suggested in the article.
*AFAIK having the same dependency injected in different places doesn't matter, since Webpack will handle it
from ama.
This is true. Technically, it doesn't make a difference because angular's $injector
is a single global context. In my application, I actually have a module for every state of the application and then the 'app'
module depends on all of the "state modules." This allows me to have dependencies closer to where they're being used. I also have a concept of ngCommon
modules that contain common things throughout a state and the state's children.
My app structure and directory structure are influenced heavily by this gist by @ryanflorence and @mzabriskie. I have to do some pretty interesting things with webpack to get this to work in an angular context... Maybe one day I'll have a blogpost on this or I'll continue to work on the webpack series.
I recently had a failed refactor which attempted to create a single angular module per component (directive/service/etc.) in my app. It was going to be awesome because I could sort-of make my Angular 1 stuff like React or Angular 2 where you have to explicitly list your dependencies (a big win for several reasons). Unfortunately, I got to around 500 modules and noticed bootstrapping time took upwards of 5 seconds 😵 Not sure what the problem was, but it was totally not worth it in any case.
Hope this is helpful! I'm sorry I can't be more helpful!
from ama.
👍 thanks @benoror!
from ama.
Thanks @kentcdodds @benoror !
from ama.
Related Issues (20)
- Trying to find a video I saw 2-3 years ago HOT 1
- What were the features you were missing in buttondown? HOT 1
- Article Idea
- JSDOM doesn't dynamically provide the clientHeight HOT 1
- How to keep updated react context value inside a callback in a custom hook HOT 2
- UseEffect hook and testing-library HOT 4
- Testing visuals with React Testing Library HOT 2
- Who is the version of you for React Native
- What is the best approach to analyze the code base healthy of existing projects?
- Epic React Course HOT 3
- question according to useImperativeHandle in react?
- Compound Component in React
- What approach do you prefer to cache data to not call the server every time when useEffect re-render? HOT 1
- Async beforeEach for fetching data HOT 1
- Choose a Backend As A Service for prototyping HOT 1
- Using Error boundry in react app HOT 2
- Question regarding your useMemo & useCallback blog HOT 4
- Using testing-library wrapper with redux to test components
- React/Redux testing with react-testing-library
- What resources do you use to keep up to date on the direction of the industry? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ama.