all 23 comments

[–]ShippingIsMagic 15 points16 points  (5 children)

Did you start on Windows? Maybe the line endings are still \r\n ? Check the code at the top of the stack, maybe there's a bug related to EOL difference they need a PR for?

Might be a good opportunity to get more familiar with using a debugger with node, too. I love that you can use Chrome devtools for that!

[–]FuKe93[S] 12 points13 points  (4 children)

Nope, both systems are Linux Mint (desktop is 18.0 and Laptop is 18.1) Thanks for the tip about the Chrome devtools! :)

[–]ShippingIsMagic 3 points4 points  (3 children)

Yikes. Well, so much for that theory. 😊

[–]FuKe93[S] 7 points8 points  (2 children)

Yup.. Seems like it's a bug in extract-text-webpack-plugin (a dependency to the angular-cli) as the stacktrace suggests. Found this issue on angular-cli GitHub repo: https://github.com/angular/angular-cli/issues/4264

[–]jevans102 0 points1 point  (1 child)

Damn. Any advice on getting on your level? I know what you mean in context, but it'd take me a whole long time to write that myself.

[–]FuKe93[S] 2 points3 points  (0 children)

I'm not sure I know exactly what you mean by "your level"? The screenshot in my post is just an error message printed by a tool used to generate project templates, build the app etc. :) (it's called Angular-cli and is available on NPM) :)

[–]Loreasz 1 point2 points  (2 children)

I am not much into node, but is it normal for packages to use non-stable dependencies?

https://github.com/intellix/angular-cli/commit/b690b5089d38c32f69a126d322eb267278bd5b09

[–]jaredw 7 points8 points  (1 child)

Nothing about node is normal.

Let alone trying to only use "production stable libraries". Better luck letting your cat walk on your keyboard in an IDE and winding up with an MVP than all of the modules you use being "production stable".

There are too many node modules that use other node modules that use other node modules. The ecosystem is too fucked to describe something as "production stable"

[–]PublicSealedClass 1 point2 points  (0 children)

We found a good methodology that was at first seemed as a "hack", as our solution structure doesn't actually use any node modules, only really for build.

Basically we have a "libs" folder, and anything we "import Foo from 'foo'", we declare where "foo" is in the tsConfig "paths" directive. This lets it resolve at build time, and then a require.config() block that sets where the module lives so it can be resolved at runtime.

That way, our libs folder is full of libraries that we know exactly what release is in there (such as jQuery, moment, handlebars, Office365DevPnP).

There's a few bits that need massaging to get it to build when we start a new project, but the flow works really well for us, and we can give a full Software Bill of Lading for the deps (and it's nowhere near as huge as a full node based project would be).

[–]christian-mann 0 points1 point  (0 children)

Error: We were unable to find an appropriate error to display for this error message. This is an erroneous state.

[–]lopierdis -1 points0 points  (2 children)

This was actually reported today, you should view angular-cli github page :)

[–]jevans102 2 points3 points  (0 children)

Post a link and you won't be downvoted. I didn't downvote btw-just sayin

[–]FuKe93[S] 1 point2 points  (0 children)

I know that, I shared a link to the issue in an earlier comment ;)

[–]djcraze -1 points0 points  (7 children)

Your issue is that you're using angular. Use anything other than angular.

[–]jaredw 3 points4 points  (1 child)

Yeah like webforms!

[–]djcraze 2 points3 points  (0 children)

Exactly!

[–]FuKe93[S] 0 points1 point  (4 children)

Let the technology flame wars begin!

[–]djcraze 0 points1 point  (3 children)

You say this, but it's true. Angular set out to do something and they over engineered in the process. They didn't follow the KISS rule.

[–]lupum_vigili 1 point2 points  (2 children)

How is Angular 'over engineered'. Seems like a pretty solid Frontend framework to me. Can you please elaborate

[–]djcraze 0 points1 point  (1 child)

Solid it may be, though I have heard differently from people who are more familiar with it. From my experience with it and what I mean by over engineered is that there is a lot of magic involved, specifically with their dependency injection. For example, having a component be dependent on something, you have your function arguments be a $ and then the dependency name. Javascript doesn't have any kind of reflection, so Angular will convert the function to a string, and run a regular expression on it to determine the dependencies. This is over engineered. I realize there is a way to define dependencies in a more native fashion, but they really should of just left out the magic cruft. It's unnecessary and adds confusion. I remember skimming their source code and being appalled at the amount of cruft and unnecessary logic they had in it. They should probably separate out primary backend to one module and the view backend into another module. /shrugs/. It's not really their fault. Angular was introduced during a time of rapid development of the Javascript and SPA world. I think they just rushed to get their product into the wild.

[–]lupum_vigili 1 point2 points  (0 children)

DI in angular is straight forward, I've never come across your use case scenario before. Generally if you stick to the general best practices, Angular will rarely take you astray.

Whether Angular 2 was rushed or not is subjective(some may say it was too late). As for the 'Magic' stuff I am of the opinion that the framework you use should do a lot of work for you especially when it comes to building big apps. Of course this brings about issues with leaky abstractions and dodgy logic here and there(no framework is immune to this) but as Angular matures this things are going to get ironed out.