本文主要講述基於webpack編寫js包文件後上傳到npm,並經過cdn進行訪問。javascript
在本身新建的文件夾下執行以下代碼:java
npm init
name: (mtmap) version: (1.0.0) description: xxxxx entry point: (/dist/gaia.demo.map.js) test command: git repository: keywords: author: allanhao license: (ISC) MIT About to write to E:\github\mtmap\package.json: { "name": "mtmap", "version": "0.1.0", "description": "xxxxx", "main": "/dist/gaia.demo.map.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "allanhao", "license": "MIT" } Is this ok? (yes)
按照提示填寫基本信息jquery
配置項 | 意義 | 默認值 |
---|---|---|
name | 包的名字 | 默認是所在文件夾的名字 |
version | 包的版本 | 1.0.0 |
description | 項目描述 | |
entry point | 入口文件 | index.js |
test command | 測試命令 | |
git respository | 源代碼git倉庫地址 | |
keyword | 關鍵字,會顯示在npm中,方便別人搜索 | |
author | 做者 | |
license | 執照 |
確認後會發現文件目錄內多出來一個package.json文件webpack
開始寫代碼,參照webpack教程git
在npm官網註冊https://www.npmjs.com。
注意郵箱要驗證,會發送驗證連接到你的註冊郵箱,沒有驗證的話是不能發佈代碼的github
/**/* !dist/gaia.demo.map.js !ACKNOWLEDGEMENT
這樣會將build後的dist文件夾內的js包文件發佈到npm,方便後續經過cdn訪問web
$ npm adduser Username: your name Password: your password Email: yourmail
按照你註冊的帳號配置好,這時候看一下package.json中author儘可能與npm帳戶一致npm
在根目錄下配置帳號信息,只用配置一次便可,我上傳的時候發現有提示必須admin權限才能上傳問題就是沒在根目錄下配置信息json
npm who am i # 若是不成功則從新登陸一下 npm login
npm publish
注意:若是提示包不能爲private,須要執行下面的發佈方式:測試
npm publish --access public
注意每次提交版本號都要比上次的高
去官網你的帳號下面看一下有沒有
或者直接npm下載下來
npm i mtmap
在咱們的package.json裏面有一個version字段 ,每次提交到npm,版本號須要增長。 或者本身手動修改,或者使用 「npm version
npm有一套本身的版本控制標準——Semantic versioning(語義化版本)
具體體現爲:
對於"version":"x.y.z"
1.修復bug,小改動,增長z
2.增長了新特性,但仍能向後兼容,增長y
3.有很大的改動,沒法向後兼容,增長x
例如:我本來的項目是1.0.0版本的話
如果1中狀況,變爲1.0.1
如果2中狀況,變爲1.1.0
如果3中狀況,變爲2.0.0
經過npm version
update_type爲patch, minor, or major其中之一,分別表示補丁,小改,大改
1.no_perms Private mode enable, only admin can publish this module
這是由於鏡像設置成淘寶鏡像了,設置回來便可
npm config set registry http://registry.npmjs.org
2.npm publish failed put 500 unexpected status code 401
通常是沒有登陸,從新登陸一下 npm login 便可
3.npm ERR! you do not have permission to publish 「your module name」. Are you logged in as the correct user?
包名被佔用,改個包名便可。最好在官網查一下是否有包名被佔用,以後再重命名
4.you must verify your email before publishing a new package
郵箱未驗證,去官網驗證一下郵箱
這裏使用的是jsdelivr
地址格式爲:
https://cdn.jsdelivr.net/npm/(your packagename)@(version)/(file)
如:
https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js