Node 11.0
nodejs.org
nodejs.org
The JS you can put on a CDN is client-side JS. You can download the source files and host them, or use a bundler such as https://webpack.js.org to compile them into a single file.
The advantage of any package manager over downloading source files is easy of use, you don't clog up your code repository with old files, etc.
In addition, since v6 [0], npm audits dependencies for security vulnerabilities, which is really useful to keep projects safe.
[0]: https://blog.npmjs.org/post/173719309445/npm-audit-identify-...
Here's a few of them:
https://www.amazon.com/Django-Unleashed-Andrew-Pinkham/dp/03...
Thoughts: does not cover any html/css. The biggest negative I see here is that the book only shows a website twice or thrice. The rest of the book is pure-django-related stuff, which is very intersting/important but does not give a newbie a good understanding what he's actually doing (e.g. by showing real-life examples of a possible website). It contains some code-errors, unfortunately. I found it to be more useful as soon as I grasped the basics of django (models, views, urls, etc.)
----------------------------------------------------
https://www.amazon.com/Django-Example-powerful-reliable-appl...
Thoughts: absolutely the contrary to the above. Does show what sites you can create and provides the code for that so you can actually see what a website might look like, what a feature does etc., but it gives little to no explanation about the code. Without at least a basic understanding of how django works, the reader will have a hard time truly understanding what he's doing. It contains examples for multiple possible websites.
---------------------------------------------------
HTML, CSS & Javascript:
https://www.amazon.com/Web-Design-HTML-JavaScript-jQuery/dp/...
Thoughts: great books! Filled with code and the actual picture of what all of it means/looks like. it covers all the basics but doesn't go super deep.
---------------------------------------------------
HTML, CSS & Javascript:
https://www.udemy.com/the-web-developer-bootcamp/learn/v4/ov...
The only course I bought on udemy. Do absolutely not regret it. Content is vast, the instructor seems to know what he's talking about, many many many examples and explanation of all the basic concepts.
--------------------------------------------------
Django youtube:
https://www.youtube.com/playlist?list=PL-osiE80TeTtoQCKZ03TU...
After reading through the aforementioned books, I found this tutorial to be super helpful. I went through the whole playlist within 2 days and this helped me to deepen the basic knowledge from the books
-------------------------------------------------
And except for that, I visit the django docs and stackoverflow every day, of course :)
Hope that helps.
The reason I choose Node for the backend on one project was to have the same codebase and not maintain two systems (this project is in React so Node is a nice fit). But in hindsight I feel like I should have evaluated Django more. Node is difficult to maintain since it is so active with lots of dependencies to track :)
Would also like to hear someone else's experience with maintaining a Django project vs. Node.
The purpose of npm is indeed downloading the various libraries, but not just for client development (to write JS for the browser) but also for server development. So it's also like pip in Python-land.
Nodejs on the other hand is more like a combined Python + webserver. It has the v8 runtime that executes .js (like Python executes .py files), various libraries you can import and use, plus a fast webserver built in.
On Node you can run frameworks similar to Django or flask (e.g. Express is a popular one).
You don't need node.js / npm. (I never have).
If you need more asynchronous processing on the server side then node.js might be worth looking at (though you will need to do server side programming in JavaScript rather than Python. Python is far more pleasant to work with in my opinion). Django channels however will give you the option of asynchronous server side code (and there are some other options for Python).
If you are at the learning stage I would forget about it for the time being.
Some of these things you can get other ways -- libraries you load from a CDN will generally come with any critical dependencies already bundled in, for instance. But those solutions have their own problems; loading from a CDN means your app's performance is now tied to the performance of a system you don't have control over, and if the file on the CDN ever gets hacked, you're screwed. Managing your libraries with NPM lets you keep control over these sorts of things.
Current stable is still at 8, and current is at 10 [1].
Is there a way to get this quicker?
[1]: https://nodejs.org/en/download/package-manager/#debian-and-u...
nvm is probably the easiest way to install it, but of course, you can do it manually:
1. mkdir -p ~/apps/
2. Download tar.gz and extract it to ~/apps/
3. Change $PATH variable to include the bin directory
NODEJS_DIR="node-v8.12.0-linux-x64" # Change version to appropriate
export PATH=$PATH:${HOME}/apps/${NODEJS_DIR}/bin
4. Validate "installation" by version check[1]: https://github.com/nodejs/Release#release-schedule
Edit: There is also a snap package with nodejs - https://nodesource.com/blog/announcing-node-js-snap-linux-us... but there is 12.x (edge channel) not 11.x
snap info node