2018-11-23 14:31:21分類:硬件開發(fā)7640
開發(fā)環(huán)境:開發(fā)環(huán)境是程序猿們專門用于開發(fā)的服務(wù)器,配置可以比較隨意, 為了開發(fā)調(diào)試方便,一般打開全部錯(cuò)誤報(bào)告。
測試環(huán)境:一般是克隆一份生產(chǎn)環(huán)境的配置,一個(gè)程序在測試環(huán)境工作不正常,那么肯定不能把它發(fā)布到生產(chǎn)機(jī)上。
生產(chǎn)環(huán)境:是值正式提供對(duì)外服務(wù)的,一般會(huì)關(guān)掉錯(cuò)誤報(bào)告,打開錯(cuò)誤日志。
三個(gè)環(huán)境也可以說是系統(tǒng)開發(fā)的三個(gè)階段:開發(fā)->測試->上線,其中生產(chǎn)環(huán)境也就是通常說的真實(shí)環(huán)境。相關(guān)文章:《項(xiàng)目中的軟硬件開發(fā)環(huán)境與工具指的是什么?》
開發(fā)環(huán)境與生產(chǎn)環(huán)境分離的原因如下:
在開發(fā)時(shí),不可避免會(huì)產(chǎn)生大量debug又或是測試的代碼,這些代碼不應(yīng)出現(xiàn)在生產(chǎn)環(huán)境中(也即不應(yīng)提供給用戶)。
在把頁面部署到服務(wù)器時(shí),為了追求極致的技術(shù)指標(biāo),我們會(huì)對(duì)代碼進(jìn)行各種各樣的優(yōu)化,比如說混淆、壓縮,這些手段往往會(huì)徹底破壞代碼本身的可讀性,不利于我們進(jìn)行debug等工作。
數(shù)據(jù)源的差異化,比如說在本地開發(fā)時(shí),讀取的往往是本地mock出來的數(shù)據(jù),而正式上線后讀取的自然是API提供的數(shù)據(jù)了。
如果硬是要在開發(fā)環(huán)境和生產(chǎn)環(huán)境用完全一樣的代碼,
那么必然會(huì)付出沉重的代價(jià),這點(diǎn)想必也不用多說了。
─webpack.config.js# 生產(chǎn)環(huán)境的webpack配置文件(無實(shí)質(zhì)內(nèi)容,僅為組織整理)
dependences是項(xiàng)目正常運(yùn)行所需要的依賴,而devDependencies則是開發(fā)者開發(fā)時(shí)整個(gè)項(xiàng)目所需的依賴(如會(huì)有一些測試依賴之類的)。
會(huì)默認(rèn)安裝兩種依賴。
如果你只是單純的想使用這個(gè)包而不需要進(jìn)行一些改動(dòng)測試之類的操作,則運(yùn)行:(只安裝dependencies而不安裝devDependencies。)
npminstall--production
如果想要安裝devDependencies,則運(yùn)行:
npminstallpackagename--dev
dependencies就是你程序跑起來需要的模塊,沒有這個(gè)模塊你程序就會(huì)報(bào)錯(cuò)。
devDependencies見命知意了,開發(fā)程序的時(shí)候需要的模塊了。
舉個(gè)例子,你用angularjs框架開發(fā)一個(gè)程序,開發(fā)階段需要用到gulp來構(gòu)建你的開發(fā)和本地運(yùn)行環(huán)境。所以angularjs一定要放到dependencies里,因?yàn)橐院蟪绦虻缴a(chǎn)環(huán)境也要用。gulp則是你用來壓縮代碼,打包等需要的工具,程序?qū)嶋H運(yùn)行的時(shí)候并不需要,所以放到dev里就ok了。
再深入一些,你寫程序要用ES6標(biāo)準(zhǔn),瀏覽器并不完全支持,所以你要用到babel來轉(zhuǎn)換代碼。程序里有消息提示,你想用toaster。同樣一個(gè)開發(fā)用,一個(gè)運(yùn)行用。所以babel放dev,toaster放dependencies。
希望你理解了!
簡單一些可以:
dependencies存放項(xiàng)目或組件代碼中依賴到的
devDependencies存放測試代碼依賴的包或構(gòu)建工具的包
如果你使用了一些構(gòu)建工具,比如webpack之類的,打包的時(shí)候,是不會(huì)把dev庫打進(jìn)去的。
devDependencies 通常用來放我們開發(fā)時(shí)所用到的工具,比如 Webpack,Gulp,babel等。devDependencies 里面的插件只用于開發(fā)環(huán)境,不用于生產(chǎn)環(huán)境,而 dependencies 是需要發(fā)布到生產(chǎn)環(huán)境的。
瀏覽器并不會(huì)實(shí)際的去同步加載這個(gè)模塊,require的處理是由Webpack進(jìn)行解析和打包的,瀏覽器只需要執(zhí)行打包后的代碼。
將Webpack開發(fā)服務(wù)器集成到已有服務(wù)器
盡管Webpack開發(fā)服務(wù)器可以直接用于開發(fā),但實(shí)際項(xiàng)目中我們可能必須使用自己的Web服務(wù)器。這就需要我們能將Webpack的服務(wù)集成到已有服務(wù)器,來使用Webpack提供的模塊打包和加載功能。要實(shí)現(xiàn)這一點(diǎn)其實(shí)非常容易,只需要在載入打包文件時(shí)指定完整的URL地址,例如:
這就告訴當(dāng)前頁面應(yīng)該去另外一個(gè)服務(wù)器獲得腳本資源文件,在之前我們已經(jīng)在配置文件中指定了開發(fā)服務(wù)器的地址,因此打包后的文件也知道應(yīng)該通過哪個(gè)地址去建立Socket IO來動(dòng)態(tài)加載模塊。
硬件開發(fā)環(huán)境與軟件開發(fā)環(huán)境是指什么?一個(gè)完整的電腦系統(tǒng)包括硬件和軟件兩部分.顧名思義,硬件:就是電腦中那些看得見摸得著的實(shí)物設(shè)備.而軟件則是相對(duì)硬件所說的,它是指電腦上運(yùn)行所需的各種程序及其有關(guān)的文檔材料.
2019-01-07
在計(jì)算機(jī)領(lǐng)域,軟件環(huán)境指運(yùn)行于計(jì)算機(jī)硬件之上的驅(qū)動(dòng)計(jì)算機(jī)及其外圍設(shè)備實(shí)現(xiàn)某種目的的軟件系統(tǒng)。還包括目的軟件之外的應(yīng)用層軟件,在涉及軟件交互的時(shí)候,這些應(yīng)用軟件往往影響很大。
2019-01-04
硬件環(huán)境( Hardware Environment),計(jì)算機(jī)及其外圍設(shè)備組成的計(jì)算機(jī)物理系統(tǒng)。 即硬件設(shè)施,是指由傳播活動(dòng)所需要的那些物質(zhì)條件、有形條件之和構(gòu)筑而成的環(huán)境。
2019-01-02
嵌入式系統(tǒng)的開發(fā)需要開發(fā)環(huán)境,主要有三部分:系統(tǒng)移植和開發(fā)的具體軟、硬件環(huán)境,以及嵌入式系統(tǒng)在開發(fā)中使用的交叉編譯工具。本文主要介紹系統(tǒng)硬件開發(fā)環(huán)境這一方面。硬件環(huán)境主要是以自行開發(fā)的M·CORE硬件平臺(tái)為例,其中以微控制芯片MMC2107為核心,外設(shè)包括存儲(chǔ)模塊、液晶顯示模塊、觸摸屏模塊和網(wǎng)絡(luò)接口模塊。
2018-12-12
軟硬件開發(fā)環(huán)境(Software Development Environment)是指在基本硬件和宿主軟件的基礎(chǔ)上,為支持系統(tǒng)軟件和應(yīng)用軟件的工程化開發(fā)和維護(hù)而使用的一組軟件,簡稱SDE。
2018-12-11
前端硬件開發(fā)環(huán)境與生產(chǎn)測試環(huán)境的區(qū)別。三個(gè)環(huán)境也可以說是系統(tǒng)開發(fā)的三個(gè)階段:開發(fā)->測試->上線,其中生產(chǎn)環(huán)境也就是通常說的真實(shí)環(huán)境。
2018-11-23