Using CDN vs Installing library by NPM

2019-02-06 03:38发布

Though, I have been using NPM, but I do not understand how the files in the node_modules are added to my index.html and work from there.

For Example, if I have to use jQuery, its so simple. I will get the file through cdn and add in my index.html file

CASE I: CDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 

<html>

<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
$('body').css('background','red');
});
</script>
</body> 
</html> 

Now, I am adding not by cdns, but I will now include jQuery by NPM. I will create a package.json file and then add jQuery by going to the respective folder and type:

CASE II: NPM - node_module folder

I have now done the followign steps:

  1. Created package.json by npm init --yes

  2. Included jQuery by npm install jquery --save

Now, by folder looks like this: enter image description here

Now, as I have now removed cdn link of jQuery, I dont know how will 'jQuery file' from node_modules will be added to my index.html?

Please, someone help. I have no clue ...I am doing this on browser!

3条回答
Evening l夕情丶
2楼-- · 2019-02-06 04:12

I might have misunderstood your question... But can't you just add this line to your index.html file?

<script src="node_modules/jquery/dist/jquery.min.js"></script>
查看更多
Summer. ? 凉城
3楼-- · 2019-02-06 04:17

I think you want to host jQuery yourself and use it within a web app running in the browser.

If so, you need to host this file - make it downloadable via the same web server you are using to host index.html.

If you are using Express, you might do something like this on the server side:

app.use('jquery', express.static(__dirname + '/node_modules/jquery/dist/'));

And then reference the file in index.html:

<script src="/jquery/jquery.js"></script>

See Express' manual for serving static files.

If you're not using Express, you need to consult your web server's stack manual. No way to guess unfortunately - I gave an Express.js example because this is probably the single most popular package like that for node.js.

查看更多
小情绪 Triste *
4楼-- · 2019-02-06 04:21

CDN

Use CDN if you are developing a website which will be accessible by internet users.

CDN Benefits:

  • Will be cached on most browsers because it's used by a lot of other websites

  • Reduce the bandwidth

check for more benefits here

NPM

npm is a great tool to manage dependencies in your app using a module bundler.

Example:

assume using a webpack module bundler and jQuery is installed

import $ from 'jQuery'
...
var content = $('#id').html();

but the browser does not understand the import statement so you have to transpile the code with webpack commands, the bundler will check all the used dependencies and bind them in a single file without any dependencies problems.

useful links : Getting started with webpack

查看更多
登录 后发表回答