国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

2018年第33周-javeer對nodejs體會

xiongzenghui / 2494人閱讀

摘要:流程源處理源代碼,例如過濾任何值。工藝類從編譯后處理生成的文件,例如對類進行字節碼增強。整合后的測試執行集成測試后執行所需的操作。校驗運行任何檢查以驗證包裝是否有效并符合質量標準。

nodejs和es6

nodejs的語法和es6不一樣,如模塊系統,一個是CommonJS的require、一個是es6的import,寫模塊也不一樣。

nodejs的npm

我來理解,nodejs類似與java的jvm,所以執行js時是這樣,假設文件server.js

node server.js

npm,類似與java的maven,項目構建工具,既然是構建工具,就需要配置文件,maven的配置文件是pom.xml,則npm的配置文件時package.json,一個是xml一個是json。
npm初始化package.json文件:

npm init -f
npm安裝依賴 全局依賴

如安裝常用的 Node.js web框架模塊 express依賴,這個類似于php需要什么功能時,就安裝模塊什么一樣的

npm install express -g  

全局安裝

將安裝包放在 /usr/local 下或者你 node 的安裝目錄。

可以直接在命令行里使用。

本地依賴
npm install express

本地安裝

將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。

可以通過 require() 來引入本地安裝的包。

依賴又有以下區分: npm install moduleName 命令

安裝模塊到項目node_modules目錄下。

不會將模塊依賴寫入devDependencies或dependencies 節點。

運行 npm install 初始化項目時不會下載模塊。

npm install -g moduleName 命令

安裝模塊到全局,不會在項目node_modules目錄中保存模塊包。

不會將模塊依賴寫入devDependencies或dependencies 節點。

運行 npm install 初始化項目時不會下載模塊。

npm install -save moduleName 命令

安裝模塊到項目node_modules目錄下。

會將模塊依賴寫入dependencies 節點。

運行 npm install 初始化項目時,會將模塊下載到項目目錄下。

運行npm install --production或者注明NODE_ENV變量值為production時,會自動下載模塊到node_modules目錄中。

npm install -save-dev moduleName 命令

安裝模塊到項目node_modules目錄下。

會將模塊依賴寫入devDependencies 節點。

運行 npm install 初始化項目時,會將模塊下載到項目目錄下。

運行npm install --production或者注明NODE_ENV變量值為production時,不會自動下載模塊到node_modules目錄中。

總結

devDependencies 節點下的模塊是我們在開發時需要用的,比如項目中使用的 gulp ,壓縮css、js的模塊。這些模塊在我們的項目部署后是不需要的,所以我們可以使用 -save-dev 的形式安裝。像 express 這些模塊是項目運行必備的,應該安裝在 dependencies 節點下,所以我們應該使用 -save 的形式安裝。

webpack

既然npm類似maven,那么webpack類似什么,雖然很難完全匹配上java的知識,但也盡量匹配下,方便理解。
首先先回顧,maven是有三類生命周期(默認(default),清潔(clean)和站點(site)生命周期),我們常用的是默認生命周期,這生命周期包含多個階段(參考):

驗證(validate)    驗證項目是正確的,所有必要的信息可用。  
初始化(initialize) 初始化構建狀態,例如設置屬性或創建目錄。
產生來源(generate-sources) 生成包含在編譯中的任何源代碼。
流程源(process-sources) 處理源代碼,例如過濾任何值。
生成資源(generate-resources) 生成包含在包中的資源。
流程資源(process-resources) 將資源復制并處理到目標目錄中,準備打包。
編譯(compile) 編譯項目的源代碼。
工藝類(process-classes) 從編譯后處理生成的文件,例如對Java類進行字節碼增強。
生成測試來源(generate-test-sources) 生成包含在編譯中的任何測試源代碼。
流程測試來源(process-test-sources) 處理測試源代碼,例如過濾任何值。
生成測試資源(generate-test-resources) 創建測試資源。
流程測試資源(process-test-resources) 將資源復制并處理到測試目標目錄中。
測試編譯(test-compile) 將測試源代碼編譯到測試目標目錄中
流程檢驗類(process-test-classes) 從測試編譯中處理生成的文件,例如對Java類進行字節碼增強。對于Maven 2.0.5及以上版本。
測試(test) 使用合適的單元測試框架運行測試。這些測試不應該要求代碼被打包或部署。
制備包(prepare-package) 在實際包裝之前,執行必要的準備包裝的操作。這通常會導致打包的處理版本的包。(Maven 2.1及以上)
打包(package) 采取編譯的代碼,并以其可分發的格式(如JAR)進行打包。
預集成測試(pre-integration-test) 在執行集成測試之前執行所需的操作。這可能涉及諸如設置所需環境等。
集成測試(integration-test) 如果需要,可以將該包過程并部署到可以運行集成測試的環境中。
整合后的測試(post-integration-test) 執行集成測試后執行所需的操作。這可能包括清理環境。
校驗(verify) 運行任何檢查以驗證包裝是否有效并符合質量標準。
安裝(install) 將軟件包安裝到本地存儲庫中,以作為本地其他項目的依賴關系。
部署(deploy) 在集成或發布環境中完成,將最終軟件包復制到遠程存儲庫,以與其他開發人員和項目共享。

每個階段都是對應有默認插件去執行的,其中“package”階段是最經常修改的,如:



    maven-assembly-plugin
    
        src/main/assembly/dep.xml
    
    
        
            create-archive
            package
            
                single
            
        
    

記起了maven這些階段,就很好理解webpack、gulp、grunt,它們就是一套構建階段的工具,最終呈現出的效果就是打包。既然maven可以自定義階段的插件,那么nodejs,也可以指定不同的構建工具。
講到這里,webpack、gulp、grunt可以類比為maven的階段,也可以類比為maven、ant、gradle不同的構建工具。

安裝webpack(全局),注意:webpack 4.X 開始,需要安裝 webpack-cli 依賴 ,所以使用這條命令 npm install webpack webpack-cli -g

  npm install webpack webpack-cli -g

查看webpack版本

gucci@gucci-PC:~$ webpack -v
4.16.5
腳手架(scaffolding)

如vue腳手架vue-cli,詳情參考https://www.npmjs.com/package...
學習webpack時,發現配置文件超多的,再結合vue,那配置就無窮無盡了。從零開始寫配置文件就不靠譜了。所以就出現腳手架scaffolding,這跟maven的archetype很像,因為不只是vue,react也是有腳手架。
安裝vue腳手架(全局)

npm install --global vue-cli

查看版本:

gucci@gucci-PC:~$ vue -V
2.9.6

新建項目

gucci@gucci-PC:/mydata/test$ vue init webpack jc-demo-vue-cli

? Project name jc-demo-vue-cli
? Project description A Vue.js project
? Author JevonCode 
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests Yes
? Pick a test runner jest
? Setup e2e tests with Nightwatch? Yes
? Should we run `npm install` for you after the project has been created? (recommended) no

   vue-cli · Generated "jc-demo-vue-cli".

# Project initialization finished!
# ========================

To get started:

  cd jc-demo-vue-cli
  npm install (or if using yarn: yarn)
  npm run lint -- --fix (or for yarn: yarn run lint --fix)
  npm run dev
  
Documentation can be found at https://vuejs-templates.github.io/webpack

安裝(下載)依賴

npm install

注:如果npm出現異常,就用cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org
總結

會發現,人們說的js技術迭代快,學不過來,但從我們后端開發人員來看,會發現其很多思想是來源于后端思想。如構建、模塊化等思想。計算機先驅Alan Jay Perlis曾說過“如果一種語言不能影響你的編程思路,那就不值得學習。

A language that doesn"t affect the way you think about programming is not worth knowing.

雖然前端很多思想源于后端,但其也是有其思想,也影響后端(我說的是個人學習,而不是技術的發展)。如函數編程,java的lambda等。js最先給我體會就是hack精神,利用現有語法完成其語法不支持的部分。學了ES6,發現根本就“沒有規則”,還想說做個筆記記錄下,最后發現根本就把整本書抄了下來,看來只能自己記住個大概,然后實際使用時再翻開來仔細看看。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108335.html

相關文章

  • 2018年第49-dnsmasq的安裝(docker方式)

    摘要:在開發或測試環境可能有大量服務器數據庫應用服務器中間件服務器等特別大數據系統涉及的服務器很多的時候很難記就算修改本機但每次新增刪除一個對于的域名都是很麻煩的于是搭建一個就非常必須了這里使用無侵入式的搭建服務不要時刪除即可新建三個文件在宿主新 在開發或測試環境, 可能有大量服務器, 數據庫, 應用服務器, 中間件服務器等. 特別大數據系統, 涉及的服務器很多的時候, ip很難記, 就算修...

    Yuanf 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<