npm和node是現(xiàn)在前端開發(fā)必不可少的工具,尤其是隨著前端模塊化開發(fā)的流行,熟練使用npm,可以在開發(fā)中讓你如魚得水。下面我們一起來學習一下npm吧。
一、創(chuàng)建一個包,并且發(fā)布:
首先新建一個文件夾,名字自己隨意,比如我的:npm-package-test,進入到該文件夾下,然后使用 npm init 命令進行初始化, 如下圖: ?
在命令行的提示下填寫每一步的信息, 當然也可以直接按下回車,npm會自動為我們填寫一些默認值的。
完成這一步之后,我們就會看到在文件夾下多了一個package.json文件,這個就是包的配置文件,里面與包名、版本號、描述信息、包的入口文件、可以執(zhí)行的腳本、作者、許可證,以后在我們使用的過程中,還會接觸到 devDependencies、dependencies、repository等等。
接下來,我們可以按照我們需要實現(xiàn)的功能,創(chuàng)建一些文件夾、文件。為了示例起見,我只創(chuàng)建了入口文件index.js.
二、添加用戶
在第一步中,我們就簡單的創(chuàng)建了一個包,這個包在以后是需要人來管理的,所以就需要添加用戶。
這里,我們使用 ?npm adduser 命令:
輸入該命令之后,我們需要輸入一些基本信息,按著提示一步一步來就行。
三、發(fā)布
上一步完成之后,我們可以把我們的包發(fā)布到 npm倉庫中,讓更多的人來使用我們的包(這個除外。。。)。
直接使用 npm publish ?命令一鍵搞定。
是不是很有成就感呢。
四、npm owner
這個命令主要是用來管理包的所有者,即哪些人有權限操作這個包。 通常,創(chuàng)建包的人, 默認就是這個包的第一個owner,如果這個時候想要刪除owner,是刪除不了的,只有當包的owner人數(shù)大于1的時候, 才可以選擇刪除owner。
npm owner add <username> <packagename>? ? ? #添加owner:
npm owner ls? <packagename> ? ? ?#查看所有的owner
npm owner rm <user> ?<packagename> ? ? #移除一個owner
成為包的所有者的用戶, 就可以修改包的代碼,發(fā)布新版本,同時也可以添加其他用戶。
五、npm insatll
npm install ?#安裝package.json文件中的的所有依賴
npm install? packagename? #安裝packagename包
npm install? packagename@version ?#安裝版本號為version的packagename包
關于 -S或者--save:
在執(zhí)行install命令的時候,會把包信息加入到package.json文件中的dependencies字段中,例如:
npm install webpack ?--save
如果使用了-S 或者--save則表示這是一個生產(chǎn)環(huán)境會用到的一個依賴。
關于 -D 或者 --save-dev:
在執(zhí)行install命令的時候,會把包信息加入到package.json文件中的devDependencies字段中,例如:
npm install webpack? --save-dev
如果使用了 -D或者--save-dev, 則表示這是一個在測試環(huán)境中使用的依賴;
關于 -O 或者 --save-optional:
在執(zhí)行install命令的時候,會把包信息加入到package.json文件中的optionalDependencies字段中,例如:
npm install webpack? --save-optional
如果使用了-O或者--save-optional, 則表示這是一個可選階段的依賴;
關于 -g 或者 --global
表示是全局安裝,例如:
npm install webpack ?-g
六、npm cache
npm cache add <tarball file>
npm cache add <folder>
npm cache add <tarball url>
npm cache add <name>@<version>
npm cache ls <path>
npm cache clean <path>
最常用的還是 npm cache clean
七、 npm config
npm config set <key> <value> ?[-g|--global]
npm config get ?<key>
npm config delete ?<key>
npm config list
npm config edit
npm get <key>
npm set <key> [ -g|--global]
比如:
npm config? get? registry
npm config set proxy = http://dev-proxy.oa.com:8080
npm config set registry="http://r.cnpmjs.org"
八、 npm start
這個命令可以執(zhí)行一個模塊,命令寫在package.json文件中的scripts屬性中,命令名稱可以由開發(fā)者自己配置。
"scripts": {
? ? ? "start" : "gulp -ws"
}
可以自己配置名稱:
"scripts": {
? ? ? ?"ecWebpack" : "webpack ?--config webpack.config.js"
}
當然執(zhí)行的時候,就需要使用命令? npm ecWebpack了
九、 npm test
用來測試一個模塊。命令寫在package.json文件中的scripts屬性中,命令名稱可以由開發(fā)者自己配置。
"scripts": {
? ? ? ? ? "test" : "gulp -ws"
}
上面八和九中的start、test都是大家約定俗成的名稱,開發(fā)者可以在自己的package.json文件中自定義。
十、其他命令
npm update <packagename> ?#更新包
npm update <packagename> ?#卸載包 ?(可以添加 --save , --save-dev等參數(shù))
npm outdated <packagename> ?#檢查包是否過時
npm ls ?#查看已經(jīng)安裝的模塊
npm root ?#查看包的安裝路徑
npm start ?#啟動模塊(包)
npm stop ?#停止模塊(包)
npm restart #重新啟動模塊(包)
npm test ?#測試模塊(包)
npm version #查看包的版本?
npm view ?#查看包的注冊信息
參考鏈接:
http://www.8dou5che.com/2017/01/13/npm-cli/