<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 編寫Nodejs模塊? nodejs的出現,可以算是前端里程碑式的一個事件,它讓前端攻城獅們擺脫了瀏覽器的束縛,踏上了一個更加寬廣的舞臺。前端的可能性,從此更加具有想象空間。 隨著一系列基于nodes的應用/工具的出現,工作中與nodejs打交道的機會越來越多。無論在node應用的開發,還是使用中,包管理都扮演著一個很重要的作用。NPM(node package manager),作為node的包管理工具,極大地便利了我們的開發工作,很有必要了解一下。 ## 什么是Npm? [https://www.npmjs.com/](https://www.npmjs.com/) npm is the package manager for * browsers * javascript * nodejs * io.js * mobile * bower * docpad * test 簡單理解:NPM(node package manager),通常稱為node包管理器。顧名思義,它的主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索、發布等。 它可不只是nodejs package manager,可見其定位是很廣的,這從側面也佐證了大前端和node全棧的機會。 以前nodejs吹牛都是那異步說事兒,現在都是拿生態說事兒 這話不錯,在09年談異步,很多語言都很弱,但事情要以發展的眼光看,現在很多語言都支持了,而且性能還不錯,所以才顯得nodejs性能沒那么突出 但是,nodejs的性能依然是很棒的 現在來說npm這事兒,它確實很牛逼 ![](https://i5ting.github.io/wechat-dev-with-nodejs/nodejs/img/1.png) * 共計230,792個包 * 昨日下載量46,065,663 * 上周下載量761,014,696 * 上月下載量2,729,222,496 是不是看著挺可觀的? npm官網:?[https://npmjs.org/](https://npmjs.org/) npm官方文檔:?[https://npmjs.org/doc/README.html](https://npmjs.org/doc/README.html) 我們需要了解什么 * npm的安裝、卸載、升級、配置 * npm的使用:package的安裝、卸載、升級、查看、搜索、發布 * npm包的安裝模式:本地 vs 全局 * package.json:包描述信息 * package版本:常見版本聲明形式 * 如何編寫nodejs模塊 ## npm上面都有哪些包 下面我們再看看它上面都有哪些包 * browserify browser-side require() the node way 10.2.6 published 7 months ago by substack * grunt-cli The grunt command line interface. 0.1.13 published 2 years ago by tkellen * bower The browser package manager 1.4.1 published 10 months ago by sheerun * gulp The streaming build system 3.9.0 published 8 months ago by phated * grunt The JavaScript Task Runner 0.4.5 published 2 years ago by cowboy * express Fast, unopinionated, minimalist web framework 4.13.1 published 7 months ago by dougwilson * npm a package manager for JavaScript 2.13.0 published 7 months ago by zkat * cordova Cordova command line interface tool 5.1.1 published 8 months ago by stevegill * forever A simple CLI tool for ensuring that a given node script runs continuously (i.e. forever) 0.14.2 published 7 months ago by indexzero * less Leaner CSS 2.5.1 published 8 months ago by agatronic * pm2 Production process manager for Node.JS applications with a built-in load balancer. 0.14.3 published 7 months ago by jshkurti * karma Spectacular Test Runner for JavaScript. 0.13.1 published 6 months ago by dignifiedquire * coffee-script Unfancy JavaScript 1.9.3 published 8 months ago by jashkenas * statsd A simple, lightweight network daemon to collect metrics over UDP 0.7.2 published a year ago by pkhzzrd * yo CLI tool for running Yeoman generators 1.4.7 published 8 months ago by sindresorhus 可以說nodejs能做的所有的事兒基本上都有體現,所有著名的項目也都是以npm形式發布的。所以很大程度上講,nodejs里的node module 和npm是一樣的。 這就是生態,你想要什么,就去npmjs上搜一下,基本都會有,如果沒有也沒關系,js這么簡單,自己寫一個npm也是分分鐘的事兒。(后面會講哦) 不管你是做后臺開發,還是開發前端工具,npm都是非常重要的。甚至作為sa(system admin)都需要會npm。 總結一下為啥必須學npm * 開發簡單 * 模塊豐富 * 與c、c++等語言集成方便 * 干啥都用的到 我講nodejs課的時候,總結安裝nodejs的3m安裝大法 * nvm (Node version manager) * npm (package manager for node, react, bower, angualr, ...) * nrm (NPM registry manager) 其中npm和nrm都是關于npm的,可見其重要程度。 ## nrm 下面內容在coding.com上演示 ~~~ npm install -g nrm ~~~ ~~~ nrm test ~~~ ~~~ nrm use ~~~ ~~~ nrm ls ~~~ ## 當心npm版本 npm2和3是不一樣的 3是扁平化管理,和2不是完全兼容,會有莫名其妙的一些問題 再有就是npm2.9之后才支持私有模塊 再有就是使用nrm切換到其他源上,導致npm無法發布 # 如何編寫Nodejs命令行模塊? 腳手架的原理和生成代碼都已經有了,可是如何在命令行工具里 上面給出的很多都是nodejs寫的小工具模塊,nodejs和npm的種種好處,使得nodejs開發命令行模塊異常簡單 先說一下node module的作用 * 封裝常見類庫 * 命令行工具 nodejs這幾年之所以如此快的崛起,就是因為模塊編寫簡單,npm無比強大 npm是nodejs最好的東西,常用分類 * 1)命令行工具 * 比如express-generator * 比如gulp 和grunt * 2)shell相關 * 比如kp:根據端口殺死進程 * 比如mongo-here:啟動mongodb的簡化寫法 * 3)本地服務器 * 比如je * 比如hade 用起來非常方便,雖然有在線的,但網絡是一個障礙 尤其沒網的時候就不能用,非常郁悶 具體做法 無論如何,它都值得你一學的 下面看一下如何編寫nodejs命令行模塊 ## 創建git repo github上創建即可 ## git clone到本地 ~~~ git clone git@github.com:i5ting/node-cli-demo.git ~~~ ## 切換到項目目錄 ~~~ cd node-cli-demo ~~~ ## 初始化npm 使用npm命令,初始化npm的配置文件package.json 執行 ~~~ npm init ~~~ 一直回車,除非你真的有東西想改動,具體如下 ~~~ ? node-cli-demo git:(master) npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sane defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg> --save` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. name: (node-cli-demo) version: (1.0.0) description: entry point: (index.js) test command: git repository: (https://github.com/i5ting/node-cli-demo.git) keywords: author: license: (ISC) About to write to /Users/sang/workspace/github/node-cli-demo/package.json: { "name": "node-cli-demo", "version": "1.0.0", "description": "node-cli-demo =============", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/i5ting/node-cli-demo.git" }, "author": "", "license": "ISC", "bugs": { "url": "https://github.com/i5ting/node-cli-demo/issues" }, "homepage": "https://github.com/i5ting/node-cli-demo" } Is this ok? (yes) ? node-cli-demo git:(master) ? ~~~ ## 創建文件 ~~~ mkdir bin mkdir test touch bin/node-cli-demo.js touch test/node-cli-demo.js touch index.js touch gulpfile.js ~~~ bin是可執行文件 test是放測試文件的目錄 lib是模塊的核心代碼目錄,一般是index.js找lib/xxx.js ~~~ #!/usr/bin/env node console.log('hello node module') ~~~ ## 修改package.json ### 命令配置(至關重要) ~~~ "preferGlobal": "true", "bin": { "badge": "bin/badge.js" }, ~~~ 此處是關鍵 `preferGlobal`確定你的這個命令是不是全局的,一定要設置為true,不然不放到path里,不能全局用的。 `bin`是配置你的cli名稱和具體哪個文件來執行這個的 ### scripts ~~~ "scripts": { "start": "npm publish .", "test": " node bin/badge.js -t js -n q " }, ~~~ 這里定義了2個命令 * `npm start` 這里我用它發布當前npm到npmjs.org上 * `npm test` 這里我用它作為測試代碼,避免每次都重復輸入 ## 發布 發布之前要注冊npmjs賬戶的 ~~~ npm login(只需要一次,以后就不用了) npm start ~~~ 當然更多的時候,我們看到的命令是這樣 ~~~ ? vsc-doc git:(master) ? cp --help cp: illegal option -- - usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file cp [-R [-H | -L | -P]] [ ~~~ ## 更多 推薦幾個解析命令行args的庫 * commander是tj寫的,一個不錯的庫,目前用的最多的庫 * yargs也不錯,更強大,簡潔,官方推薦 * ccli是我寫的,封裝了yargs和基本常用的庫(還不完善,湊合用) 還有私有模塊
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看