nodeJs 安裝 npm nodeModules package.json


Nodejs
 
1.安裝nodejs
從nodejs官網下載最新版本的node,設置環境變量這樣就可以在cmd下直接用命令行操作npm
環境變量:path  d:/nodejs
查看本機node及npm版本
2.從官網上直接拷一個小腳本:
nodeExample.js
const http = require('http');
 
const hostname = '127.0.0.1';
const port = 3000;
 
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});
 
server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
可以通過控制台直接運行:
打開瀏覽器輸入http://127.0.0.1:3000/,頁面上出現Hello World
如果將Hello World改成Hello NodeJs,刷新瀏覽器發現頁面還是沒變,此時要再次在控制台再次運行該js文件,Ctrl+C結束上次活動
 
 
3.關於node的npm
nodejs的npm就像java里的maven,是跟着nodejs一起安裝的包管理工具,沒有它就相當於一切都沒有
npm的官方鏡像網站是  https://www.npmjs.com/
node包管理器是一個命令行實用程序,它可以讓你查找、安裝、刪除、發布以及做與node封裝模塊相關的很多事情,這里列出一些常用的命令行選項:
 
version    該命令可以查看Node npm  V8等一系列的版本        npm version
search         在存儲庫中查找模塊包    npm search express
install          使用在存儲庫或本地位置上的一個package.json文件來安裝包      npm install express
install -g      在全局可訪問的位置安裝一個包      npm install express -g
remove        刪除一個模塊                  npm remove express
pack            把在一個package.json文件中定義的模塊封裝成.tgz文件     npm pack
view            顯示模塊的詳細信息        npm view express
publish       把在一個package.json文件中定義的模塊發布到注冊表       npm publish
unpublish   取消發布你已發布的一個模塊       npm unpublish myModule
owner        允許你在存儲庫中添加、刪除包和列出包的所有者      npm add ownerName  myModule /npm rm ownerName myModule / npm ls myModule
 
注意,npm install命令沒有指定任何模塊,這是因為npm在默認情況下會查找一個package.json文件,當你需要額外的模塊式,將那些模塊添加進依賴指令中,然后再次運行npm install。依賴指令在package.json文件的dependencies里。
 
4.關於package.json
當我們通過npm install下載相應的插件時,項目中就會自動出現node_modules文件夾,如npm install gulp,我們就可以看到node_modules文件下的gulp文件夾的目錄結構:

注意以下這里的package.json,它是一個nodejs和npm都會自動讀取的配置文件,它里面是個標准的JSON格式字符串。

如果我們在外部js文件中直接require('slib'),nodejs會自動:
1)看它內置模塊中是否有,如果有就優先加載內置模塊
2)如果沒有就看是否是“路徑級”的引用
3)以上都不是就會在node_modules尋找同名文件夾。首先會默認尋找index.js,如果沒有則會查看是否在package.json中做了main定義
內置模塊如require('http'),路徑級如require('./xxx.js'),注意這里的./代表的是當前js文件所在的目錄,.js可寫可不寫,在下載gulp時由於包跟包之間有引用,因此會下載其他一些插件。
我們也可以在node_modules里自定義插件,如在node_modules里新建一個文件夾,里面的js文件一定要定義成index.js,這樣當我們引用這個js文件時,node會自動加載這個文件下的index.js,舉個例子:

 

5.自定義插件

如果我們想在node_modules下自定義一個插件,被外部文件引用,而不通過index.js自動加載的方式,那么該怎么定義呢

 1)在node_modules下新建一個文件,examplejs,包括aaa.js和package.json

 

packeage.json只有一行:

{
  "main":"aaa.js"
}
這里的main是指入口,注意:如果這里的aaa.js被命名為index.js,那么我們就不需要package.json了,node會自動加載每個插件下的index.js文件
2)在項目中新建一個showName.js文件,引用上面的examplejs
var getlib=require('examplejs');
getlib.showName();

3)執行程序:

那么如何將它加入到html中呢
1)新建index.html,將js引進來
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script src="showName.js"></script>
</body>
</html>

2)啟動瀏覽器,報錯:

瀏覽器不識別require,也就是說目前網頁還不支持require這種寫法
既然要通過require('examplejs')的方式獲取getlib,那么打印一下getlib,在showName.js里添加一行:
console.log(getlib);

查看結果:

 

發現得到的getlib就是一個對象
修改showName.js
var getlib=require('examplejs');
for(var a in getlib){
    console.log(a+":"+getlib[a]);
}

執行結果:

 

可以發現,showName.js已經將getlib里的變量和函數都抽離出來了,這時候index.html就可以引用該js了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM