摘要:是的默認(rèn)模塊管理器,一個(gè)命令行下的軟件,用來安裝和管理模塊,同時(shí)也可以管理其他開放式的模塊代碼。的包管理器可以查看所有可使用的命令。發(fā)布記得在推之前先登錄要不然會(huì)報(bào)錯(cuò)。最后需要把文件里面的刪除掉要不然上傳時(shí)會(huì)忽略掉打包的文件。
本文主要介紹npm的常用命令,以及如何發(fā)布一些常用的js模塊化代碼到npm上面方便日后的使用,和舉例如何把一個(gè)vue組件打包發(fā)布到npm到最后下載到本地使用的過程。
npm(Node Package Manager)是node的默認(rèn)模塊管理器,一個(gè)命令行下的軟件,用來安裝和管理node模塊,同時(shí)也可以管理其他開放式的js模塊代碼。npm有一個(gè)好處是除了下載需要的模塊外還會(huì)幫我們解決依賴關(guān)系,同時(shí)下載所依賴的模塊。
NPM —— JavaScript 的包管理器 npm helpaccess, adduser, bin, bugs, c, cache, completion, config, ddp, dedupe, deprecate, dist-tag, docs, doctor, edit, explore, get, help, help-search, i, init, install, install-test, it, link, list, ln, login, logout, ls, outdated, owner, pack, ping, prefix, prune, publish, rb, rebuild, repo, restart, root, run, run-script, s, se, search, set, shrinkwrap, star, stars, start, stop, t, team, test, tst, un, uninstall, unpublish, unstar, up, update, v, version, view, whoami
npm help 可以查看所有可使用的命令。
npm常用指令npm install 名字 //該命令用于安裝模塊 npm uninstall 名字 //該命令用于卸載模塊 npm run 名字 //該命令用于執(zhí)行腳本如何用npm發(fā)布自己的模塊
我們所有下載以及發(fā)布的包是存放在這個(gè)地址:https://www.npmjs.com/
我們發(fā)布一個(gè)東西,得要有自己的標(biāo)識(shí)吧,所以得先注冊(cè)賬號(hào)。
npm adduser 運(yùn)行該命令后會(huì)需要你依次輸入 Username: Password: Email:2.檢查
接下來是需要檢查一下有沒有注冊(cè)成功
npm whoami3.建立package
npm init //一路回車 name: (dateFormat) datechange version: (1.0.0) description: change date format entry point: (index.js) test command: git repository: https://github.com/shuangmuyingzi/dateFormat.git keywords: dateformat date datechange author: lingzi license: (ISC) About to write to /Users/linziying/Downloads/npm/dateFormat/package.json: { "name": "datechange", "version": "1.0.0", "description": "change date format", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/shuangmuyingzi/dateFormat.git" }, "keywords": [ "dateformat", "date", "datechange" ], "author": "lingzi", "license": "ISC", "bugs": { "url": "https://github.com/shuangmuyingzi/dateFormat/issues" }, "homepage": "https://github.com/shuangmuyingzi/dateFormat#readme" } Is this ok? (yes)
然后會(huì)在該目錄下多了個(gè)package.json文件
添加簡單的日期轉(zhuǎn)換格式插件每次后臺(tái)數(shù)據(jù)接口返回的基本是時(shí)間戳,往往需要轉(zhuǎn)換成常用的日期格式。那我就以一個(gè)簡單的日期轉(zhuǎn)換格式小插件為例。把下面代碼放到package.json文件同級(jí)目錄里。
date.js (function(global) { var datechange = (function() { return function (date) { date = date || new Date; if(!(date instanceof Date)) { date = new Date(date); } if (isNaN(date)) { throw TypeError("Invalid date"); } let re = date.getFullYear() + "." + (date.getMonth()+1) + "." + date.getDate(); return re } })() if (typeof define === "function" && define.amd) { define(function () { return datechange; }); } else if (typeof exports === "object") { module.exports = datechange; } else { global.datechange = datechange; } })(this);4.發(fā)布
npm publish
記得在推之前先登錄npm要不然會(huì)報(bào)錯(cuò)。如果是再次推送同一個(gè)項(xiàng)目記得修改版本號(hào)。
npm install --save-dev datechange
var datechange = require("datechange"); var now = new Date(); var timeStamp = datechange(now);
OR
先安裝后使用,包的名稱為package.json里的name屬性。
具體代碼看github:
https://github.com/shuangmuyi...
用webpack把項(xiàng)目打包成JS文件,然后在package.json的 main導(dǎo)出該JS文件。
vue-cli創(chuàng)建vue簡單項(xiàng)目
vue init webpack-simple load-ling-zi
修改package.json
修改"private": false
npm默認(rèn)創(chuàng)建的項(xiàng)目是私有的,如果要發(fā)布至npm必須將其公開
添加"main": "dist/build.js"
通過`import loading from "load-ling-zi"`引用該組件時(shí),項(xiàng)目會(huì)自動(dòng)找到`node_modules/load-ling-zi/dist/build.js`
在src加入組件代碼App.vue, 并創(chuàng)建我們的導(dǎo)出文件index.js。
在index.js中添加:
import load from "./App.vue" export default load //global 情況下 自動(dòng)安裝 if (typeof window !== "undefined" && window.Vue) { window.Vue.component("load", load); }
因?yàn)樽詈笪覀兪谴虬梢粋€(gè)js文件,所以需要修改一下配置文件webpack.config.js
因?yàn)椴皇撬惺褂媚憬M件的人都是通過npm按住和impor的很多人是通過直接引入的,我們要將libraryTarget改為umd,以及修改入口文件與設(shè)置導(dǎo)出文件目錄以及名稱。
entry: "./src/index.js", output: { path: path.resolve(__dirname, "./dist"), publicPath: "/dist/", filename: "build.js", library: "load", libraryTarget: "umd", umdNamedDefine: true },
最后需要把.gitignore文件里面的/dist刪除掉要不然上傳時(shí)會(huì)忽略掉dist打包的文件。
具體代碼已放到github:
https://github.com/shuangmuyi...
npm publish,具體參考上面步驟。
Installation
# install dependencies npm install load-ling-zi -D
Usage
方式二{{ loading.text }}
在main里直接導(dǎo)出Vue組件(.vue文件)
具體代碼看這里:
https://github.com/shuangmuyi...
關(guān)于vue組件、插件的實(shí)現(xiàn)方式估計(jì)還有很多的辦法,本文權(quán)當(dāng)拋磚引玉,水平有限,舉的例子也是比較簡單,一個(gè)好的組件也要考慮更多的可配置性以及通用性,數(shù)據(jù)的可配置,結(jié)構(gòu)的可配置,樣式的可配置等等,es里面模塊化的寫法也是很多,還有一些直接在引入,所以要考慮如何導(dǎo)出代碼能夠滿足更多場(chǎng)景的使用。歡迎加我微信一起交流探索,微信號(hào)為shuangmuyingzi。
另外,如果覺得本文對(duì)您還是有所幫助,請(qǐng)給小姐姐一點(diǎn)鼓勵(lì)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90060.html
摘要:是一個(gè)新的包管理器,它由開發(fā)者共同開發(fā)完成。從包管理器中借鑒,創(chuàng)建了文件,用來記錄項(xiàng)目使用每個(gè)包的確切版本。感謝您的閱讀作者煦涵年月日下面是實(shí)驗(yàn)室的微信公眾號(hào)二維碼,歡迎長按掃描關(guān)注 Yarn是一個(gè)新的Javascript包管理器,它由Facebook, Google, Exponent and Tilde開發(fā)者共同開發(fā)完成。Yarn 不是 NPM 的fork版本,而是它的重新設(shè)計(jì),Y...
摘要:僅僅一夜,卻也是無數(shù)個(gè)日夜,開源了這個(gè)新的包管理工具,這個(gè)和以及合作完成的項(xiàng)目。有兩種安裝模式,一種是下載腳本執(zhí)行,一種下載壓縮包解壓。。。這貨以后有取代的傾向。。。 yarn 僅僅一夜,卻也是無數(shù)個(gè)日夜,F(xiàn)aceBook 開源了 yarn 這個(gè)新的 JavaScript 包管理工具, 這個(gè)和 Exponent, Google, 以及 Tilde 合作完成的項(xiàng)目。 官網(wǎng) | Githu...
摘要:第一個(gè)主要的包管理器在被引用后不久就搭建起來了,并且迅速成為世界上最受歡迎的包管理器之一。簡介是一款新的包管理器,在取代客戶端和其他包管理器現(xiàn)有工作流的同時(shí),又保留了對(duì)代理的兼容性。 在JavaScript社區(qū),工程師們分享了成百上千的代碼段,我們不用自己從頭編寫基礎(chǔ)組件、類庫或者框架。反過來,每段代碼又或許依賴于其它的代碼段,而這些依賴就是通過 package managers(包管...
摘要:入門是一門基于的后臺(tái)編程語言,由于其解析引擎為引擎,性能比較強(qiáng)大,再加上與前端語言關(guān)系更為密切的先天優(yōu)勢(shì),使其在眾多后臺(tái)編程語言中脫穎而出。那么線程呢,線程,有時(shí)被稱為輕量級(jí)進(jìn)程,,是程序執(zhí)行流的最小單元。 node入門 nodejs是一門基于JavaScript的后臺(tái)編程語言,由于其解析引擎為V8引擎,性能比較強(qiáng)大,再加上與前端語言關(guān)系更為密切的先天優(yōu)勢(shì),使其在眾多后臺(tái)編程語言中脫穎...
閱讀 3756·2021-11-24 10:46
閱讀 1719·2021-11-15 11:38
閱讀 3773·2021-11-15 11:37
閱讀 3500·2021-10-27 14:19
閱讀 1958·2021-09-03 10:36
閱讀 2005·2021-08-16 11:02
閱讀 3012·2019-08-30 15:55
閱讀 2268·2019-08-30 15:44