说说对npm的开发模式和生产模式的理解
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
nodejs這些年的發(fā)展非常快,相信沒有哪個前端不知道的了,npm也成為了前端開發(fā)中經(jīng)常用到了的一個命令。那么npm不是只用一個 "npm install xxx"命令就夠了嗎?實際上并不是這樣,發(fā)現(xiàn)有些團隊在使用npm的時候沒有認真去搞懂npm在團隊里面或者說是在項目里面的一些用法。
1.從認識package.json開始
在團隊里面開發(fā),一般會分為開發(fā)模式和生產(chǎn)模式(可能會有不同的叫法),有時候還有測試模式,那么這些模式其實跟npm有很大的聯(lián)系的。首先看一個簡單的例子,先從npm依賴的package.json文件開始。
{"name": "test","version": "1.0.0","description": "test","main": "app.js","scripts": {"dev": "gulp dev && node app","pro": "node app"},"keywords": ["test"],"dependencies": {"koa": "^1.2.0"},"devDependencies": {"gulp": "^3.9.1","koa": "^1.2.0"},"author": "test","license": "MIT" }這個很簡單的package.json寫法的例子,這里主要應用的是其中的 scripts、dependencies、devDependencies 這三個設置。
2.dependencies、devDependencies這兩個的配置
關于這個兩個配置,大致可以理解為當執(zhí)行
npm install xxx --save的時候,模塊會記錄在dependencies里面; 當執(zhí)行
npm install xxx --save-dev 的時候,模塊會記錄在devDependencies里面。但是有一點的是,很多人在git clone 項目之后都是直接執(zhí)行" npm i" 或者 "npm install" 就可以把項目的依賴配置好了,而這兩個命令都是安裝devDependencies里面的模塊,那么還需要dependencies來做什么?
"npm install" 模式的是開發(fā)模式,所以安裝模塊是devDependencies里面的模塊,在開發(fā)的時候確實夠用了,但是在部署到服務器的時候就不是這樣了。上面的package.json,dependencies(對應生產(chǎn)模式)和 devDependencies(對應開發(fā)模式),區(qū)別只是在于有沒有 gulp 這個模塊。
現(xiàn)在反過來想,我們在開發(fā)的時候需要用gulp來打包我們的靜態(tài)文件,那么到了生產(chǎn)模式,也就是部署到了服務器,我們已經(jīng)不需要gulp來打包了,因為在開發(fā)模式把文件打包好,提交代碼的時候同步就可以了,所以在部署到服務器的時候我們完全不用多安裝gulp這么一個模塊了。
那么生產(chǎn)模式是怎么執(zhí)行安裝呢?很簡單,
就可以了。這個例子為了理解,只是用了一兩個模塊,實際項目中生產(chǎn)模式和開發(fā)模式肯定不止區(qū)別一個模塊這么簡單,這個時候就更能體現(xiàn)出兩種模式分開的必要。
還要提過的測試模式,測試模式一般是歸于開發(fā)模式,即把測試模式需要用到的模塊放到devDependencies 里面,目前npm是還沒有獨立出來測試模式的依賴設置。
3.scripts的設置
大部分人開始開發(fā)的時候,對于gulp的構建一般就執(zhí)行
gulp這個命令,對于運行node的server一般運行
node app 這樣類似的命令,但是這樣在團隊里面的開發(fā)是不規(guī)范的,特別是有些命令加上各種參數(shù),然后比較長的時候就會麻煩了,應該是使用"npm run" 命令和結合scripts的設置。
scripts是一個object,那么key就是對應的命令,value就是實際上執(zhí)行的命令,這種命令再長也不怕了。可以看到上面的package.json里面的scripts,里面有兩個命令一本是dev另一個是pro,分別對應開發(fā)模式和生產(chǎn)模式。 當團隊成員開發(fā)的時候只需要運行
就可以開始開發(fā),當部署到服務器的時候執(zhí)行
npm run pro 就可以啟動服務了。前提是要安裝好依賴模塊,就是上面說到了兩種不同的安裝方式。
實際項目有可能不止這兩個命令,具體的命令也可能不一樣,比如有可能還有測試模式的命令,又比如只需要打包文件而不要http的服務,那么這時候開發(fā)模式和生產(chǎn)模式就是不同的gulp命令了。
4.關于團隊使用
團隊中使用,最主要的是規(guī)范,像npm這樣的使用確實要規(guī)范起來,減少團隊配合的阻礙吧,只要是增加了什么模式,只需要告訴他看packaga.json里面的scripts, npm run xxx一下就可以了。當然這里在團隊使用當中,每個項目都應該有一個README.md 的文檔來進行介紹和說明,這里就不詳細介紹了。
轉(zhuǎn)載于:https://my.oschina.net/tearlight/blog/708857
總結
以上是生活随笔為你收集整理的说说对npm的开发模式和生产模式的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delete Volume 操作 - 每
- 下一篇: getcwd()和dirname(__F