摘要:使用介紹是隨同一起安裝的包管理工具,能解決代碼部署上的很多問題,常見的使用場景有以下幾種允許用戶從服務(wù)器下載別人編寫的第三方包到本地使用。允許用戶將自己編寫的包或命令行程序上傳到服務(wù)器供別人使用。
NPM 使用介紹
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種:
允許用戶從NPM服務(wù)器下載別人編寫的第三方包到本地使用。
允許用戶從NPM服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。
允許用戶將自己編寫的包或命令行程序上傳到NPM服務(wù)器供別人使用。
NPM 包構(gòu)建 1. 創(chuàng)建demo目錄,新建index.js文件index.js文件示例:
module.exports.sayHello = function(){ return "Hello World!"; }2.在項(xiàng)目中引導(dǎo)創(chuàng)建一個(gè)package.json文件
npm init
快速創(chuàng)建可以使用npm init -y命令
注冊npm賬號 1.要發(fā)布npm包當(dāng)然需要在npm官網(wǎng)注冊一個(gè)屬于自己的賬號npm官網(wǎng)地址: https://www.npmjs.com
2. 在cmd中登錄賬號注冊成功后,打開cmd進(jìn)入到demo目錄,登錄賬號:
npm login
輸入用戶密碼以及郵箱,登錄成功后可以輸入查詢命令:
npm whoami
就能看到你酷酷的賬號名了~~
附:剛注冊完有段時(shí)間可以發(fā)布npm包,過段時(shí)間需要郵箱驗(yàn)證通過才能發(fā)布包,不然會(huì)報(bào)錯(cuò)(無傷大雅~~)
上傳npm包 1. cmd進(jìn)到demo目錄,輸入如下命令:npm publish
這時(shí)候npm報(bào)錯(cuò)大軍要來了
npm ERR! publish Failed PUT 403 npm ERR! code E403 npm ERR! you do not have permission to publish "demo". Are you logged in as the correct user? : demo
這是什么原因??就是與npm倉庫的包名重復(fù)了
改改改~~
拿出package.json文件,把name字段值改成下面:
"name": "testfun"
注意你的name字段值不要跟我一樣,不然還會(huì)包上述錯(cuò)誤,避免相同包名就可以啦
還有一點(diǎn)要注意的是npm對包名的限制:不能有大寫字母/空格/下滑線
上傳成功后你就可以在npm官網(wǎng)看到:
查看模塊擁有者 $ npm owner ls2. 撤銷發(fā)布包( 在項(xiàng)目目錄下執(zhí)行 )添加發(fā)布者 $ npm owner add 刪除發(fā)布者 $ npm owner rm
npm unpublish --force
主要是處于安全性考慮,在Azer NPM 撤包事件后,npm公布了一版新的規(guī)則,如下:
版本更新少于24小時(shí)的包允許下架;
超過24小時(shí)的包的下架需要聯(lián)系npm維護(hù)者;
如果有npm維護(hù)者參與,npm將檢查是否有其他包依賴該包,如果有則不允下架;
如果某個(gè)包的所有版本都被移除,npm會(huì)上傳一個(gè)空的占位包,以防后來的使用者不小心引用懷有惡意的替代者。
3. npm的版本控制npm version patch npm version minor npm version major
例如:我原本的項(xiàng)目是1.0.0版本的話
若是1中情況,變?yōu)?.0.1
若是2中情況,變?yōu)?.1.0
若是3中情況,變?yōu)?.0.0
不過也可以在package.json中的version更改~~
使用npm包 1. 創(chuàng)建test目錄,在目錄中新建index.js及package.json文件index.js文件代碼:
var testfun = require("testfun"); console.log(testfun.sayHello());2. 安裝testfun包
npm install --save-dev testfun3. 在項(xiàng)目目錄中cmd輸入
node index.js
就可以看到下面的效果啦~
這是運(yùn)行在node環(huán)境,那么像運(yùn)行在瀏覽器該怎么弄呢~~
這時(shí)候就要用到browserify了
Browserify 可以讓你使用類似于 node 的 require() 的方式來組織瀏覽器端的 Javascript 代碼,通過預(yù)編譯讓前端 Javascript 可以直接使用 Node NPM 安裝的一些庫。
2.Browserify是如何工作的Browserify從你給你的入口文件開始,尋找所有調(diào)用require()方法的地方, 然后沿著抽象語法樹,通過?detective?模塊來找到所有請求的模塊.
每一個(gè)require()調(diào)用里都傳入一個(gè)字符串作為參數(shù),browserify把這個(gè)字符串解析成文件的路徑然后遞歸的查找文件直到整個(gè)依賴樹都被找到.
每個(gè)被require()的文件,它的名字都會(huì)被映射到內(nèi)部的id,最后被整合到一個(gè)javascript文件中.
3. 運(yùn)用到項(xiàng)目全局安裝browserify
npm install -g browserify
使用browserify
browserify index.js > bundle.js
在test目錄新建index.html:
打開index.html就可以看到控制器中的效果:
這樣就用有自己的npm包了(^ω^)~~~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84428.html
摘要:第一個(gè)主要的包管理器在被引用后不久就搭建起來了,并且迅速成為世界上最受歡迎的包管理器之一。簡介是一款新的包管理器,在取代客戶端和其他包管理器現(xiàn)有工作流的同時(shí),又保留了對代理的兼容性。 在JavaScript社區(qū),工程師們分享了成百上千的代碼段,我們不用自己從頭編寫基礎(chǔ)組件、類庫或者框架。反過來,每段代碼又或許依賴于其它的代碼段,而這些依賴就是通過 package managers(包管...
摘要:常見前端構(gòu)建工具的分類和對比是附帶的包管理器,是內(nèi)置的一個(gè)功能,允許在文件里面使用字段定義任務(wù)在這里,一個(gè)屬性對應(yīng)一段腳本,原理是通過調(diào)用去運(yùn)行腳本命令。 前文 端技術(shù)范圍不斷發(fā)展,前端開發(fā)不僅限于直接編寫html,css和javascript,Web應(yīng)用日益龐大,代碼也更加龐大,因此許多新的思想(例如模塊化和工程化等)和框架(React和Vue等),以及新的語言(Es6 TypeSc...
摘要:來源編程精解中文第三版翻譯項(xiàng)目原文譯者飛龍協(xié)議自豪地采用谷歌翻譯編寫易于刪除,而不是易于擴(kuò)展的代碼。模塊之間的關(guān)系稱為依賴關(guān)系。用于連接模塊的最廣泛的方法稱為模塊。模塊的主要概念是稱為的函數(shù)。 來源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項(xiàng)目原文:Modules 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 自豪地采用谷歌翻譯 編寫易于刪除,而不是易于擴(kuò)...
摘要:前言這是一篇關(guān)于如何使用構(gòu)建高性能高可讀性的現(xiàn)代化命令行工具的博客。對于命令行工具來說,運(yùn)行時(shí)的權(quán)限是巨大的,但不要因此弄臟用戶的系統(tǒng)。 前言 這是一篇關(guān)于如何使用 NodeJS 構(gòu)建高性能、高可讀性的現(xiàn)代化命令行工具的博客。 每當(dāng)我們想要?jiǎng)?chuàng)建一個(gè)基于 NodeJS 的命令行工具時(shí),就會(huì)衍生出一堆問題需要解決,比如如何準(zhǔn)備開發(fā)環(huán)境,如何打包轉(zhuǎn)譯代碼,如何使代碼在轉(zhuǎn)譯后保持可調(diào)用的狀態(tài)同...
摘要:初始項(xiàng)目設(shè)置我們將使用包管理器來處理依賴項(xiàng)。使用包管理器可以使您的項(xiàng)目依賴項(xiàng)保持最新狀態(tài),并能夠獲取和安裝最新的包。是小型應(yīng)用的最佳選擇之一。 翻譯:瘋狂的技術(shù)宅英文標(biāo)題:Creating a full-stack web application with Python, NPM, Webpack and React英文原文:https://codeburst.io/creating....
閱讀 2511·2023-04-25 22:09
閱讀 1023·2021-11-17 17:01
閱讀 1556·2021-09-04 16:45
閱讀 2619·2021-08-03 14:02
閱讀 816·2019-08-29 17:11
閱讀 3254·2019-08-29 12:23
閱讀 1089·2019-08-29 11:10
閱讀 3281·2019-08-26 13:48