摘要:是的默認模塊管理器,一個命令行下的軟件,用來安裝和管理模塊,同時也可以管理其他開放式的模塊代碼。的包管理器可以查看所有可使用的命令。發布記得在推之前先登錄要不然會報錯。最后需要把文件里面的刪除掉要不然上傳時會忽略掉打包的文件。
本文主要介紹npm的常用命令,以及如何發布一些常用的js模塊化代碼到npm上面方便日后的使用,和舉例如何把一個vue組件打包發布到npm到最后下載到本地使用的過程。
npm(Node Package Manager)是node的默認模塊管理器,一個命令行下的軟件,用來安裝和管理node模塊,同時也可以管理其他開放式的js模塊代碼。npm有一個好處是除了下載需要的模塊外還會幫我們解決依賴關系,同時下載所依賴的模塊。
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 名字 //該命令用于執行腳本如何用npm發布自己的模塊
我們所有下載以及發布的包是存放在這個地址:https://www.npmjs.com/
我們發布一個東西,得要有自己的標識吧,所以得先注冊賬號。
npm adduser 運行該命令后會需要你依次輸入 Username: Password: Email:2.檢查
接下來是需要檢查一下有沒有注冊成功
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)
然后會在該目錄下多了個package.json文件
添加簡單的日期轉換格式插件每次后臺數據接口返回的基本是時間戳,往往需要轉換成常用的日期格式。那我就以一個簡單的日期轉換格式小插件為例。把下面代碼放到package.json文件同級目錄里。
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.發布
npm publish
記得在推之前先登錄npm要不然會報錯。如果是再次推送同一個項目記得修改版本號。
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把項目打包成JS文件,然后在package.json的 main導出該JS文件。
vue-cli創建vue簡單項目
vue init webpack-simple load-ling-zi
修改package.json
修改"private": false
npm默認創建的項目是私有的,如果要發布至npm必須將其公開
添加"main": "dist/build.js"
通過`import loading from "load-ling-zi"`引用該組件時,項目會自動找到`node_modules/load-ling-zi/dist/build.js`
在src加入組件代碼App.vue, 并創建我們的導出文件index.js。
在index.js中添加:
import load from "./App.vue" export default load //global 情況下 自動安裝 if (typeof window !== "undefined" && window.Vue) { window.Vue.component("load", load); }
因為最后我們是打包成一個js文件,所以需要修改一下配置文件webpack.config.js
因為不是所有使用你組件的人都是通過npm按住和impor的很多人是通過直接引入的,我們要將libraryTarget改為umd,以及修改入口文件與設置導出文件目錄以及名稱。
entry: "./src/index.js", output: { path: path.resolve(__dirname, "./dist"), publicPath: "/dist/", filename: "build.js", library: "load", libraryTarget: "umd", umdNamedDefine: true },
最后需要把.gitignore文件里面的/dist刪除掉要不然上傳時會忽略掉dist打包的文件。
具體代碼已放到github:
https://github.com/shuangmuyi...
npm publish,具體參考上面步驟。
Installation
# install dependencies npm install load-ling-zi -D
Usage
方式二{{ loading.text }}
在main里直接導出Vue組件(.vue文件)
具體代碼看這里:
https://github.com/shuangmuyi...
關于vue組件、插件的實現方式估計還有很多的辦法,本文權當拋磚引玉,水平有限,舉的例子也是比較簡單,一個好的組件也要考慮更多的可配置性以及通用性,數據的可配置,結構的可配置,樣式的可配置等等,es里面模塊化的寫法也是很多,還有一些直接在引入,所以要考慮如何導出代碼能夠滿足更多場景的使用。歡迎加我微信一起交流探索,微信號為shuangmuyingzi。
另外,如果覺得本文對您還是有所幫助,請給小姐姐一點鼓勵。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90060.html
摘要:僅僅一夜,卻也是無數個日夜,開源了這個新的包管理工具,這個和以及合作完成的項目。有兩種安裝模式,一種是下載腳本執行,一種下載壓縮包解壓。。。這貨以后有取代的傾向。。。 yarn 僅僅一夜,卻也是無數個日夜,FaceBook 開源了 yarn 這個新的 JavaScript 包管理工具, 這個和 Exponent, Google, 以及 Tilde 合作完成的項目。 官網 | Githu...
摘要:第一個主要的包管理器在被引用后不久就搭建起來了,并且迅速成為世界上最受歡迎的包管理器之一。簡介是一款新的包管理器,在取代客戶端和其他包管理器現有工作流的同時,又保留了對代理的兼容性。 在JavaScript社區,工程師們分享了成百上千的代碼段,我們不用自己從頭編寫基礎組件、類庫或者框架。反過來,每段代碼又或許依賴于其它的代碼段,而這些依賴就是通過 package managers(包管...
閱讀 3754·2021-11-24 10:46
閱讀 1719·2021-11-15 11:38
閱讀 3773·2021-11-15 11:37
閱讀 3498·2021-10-27 14:19
閱讀 1955·2021-09-03 10:36
閱讀 2004·2021-08-16 11:02
閱讀 3012·2019-08-30 15:55
閱讀 2265·2019-08-30 15:44