打包發布到NPM並通過CDN訪問


本文主要講述基於webpack編寫js包文件后上傳到npm,並通過cdn進行訪問。

創建項目

在自己新建的文件夾下執行如下代碼:

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) 

按照提示填寫基本信息

配置項 意義 默認值
name 包的名字 默認是所在文件夾的名字
version 包的版本 1.0.0
description 項目描述
entry point 入口文件 index.js
test command 測試命令
git respository 源代碼git倉庫地址
keyword 關鍵字,會顯示在npm中,方便別人搜索
author 作者
license 執照

確認后會發現文件目錄內多出來一個package.json文件

開始寫代碼,參照webpack教程

發布到NPM

注冊npm賬號

在npm官網注冊https://www.npmjs.com
注意郵箱要驗證,會發送驗證鏈接到你的注冊郵箱,沒有驗證的話是不能發布代碼的

添加.npmignore文件,例:

/**/*
!dist/gaia.demo.map.js
!ACKNOWLEDGEMENT

這樣會將build后的dist文件夾內的js包文件發布到npm,方便后續通過cdn訪問

提交發布上面創建的包

  • 先登錄你的npm賬號
$ npm adduser    
Username: your name
Password: your password 
Email: yourmail

按照你注冊的賬號配置好,這時候看一下package.json中author盡量與npm賬戶一致

在根目錄下配置賬號信息,只用配置一次即可,我上傳的時候發現有提示必須admin權限才能上傳問題就是沒在根目錄下配置信息

  • 檢查是否登錄成功:
npm who am i
# 如果不成功則重新登錄一下
npm login
  • 配置成功之后提交代碼
npm publish

注意:如果提示包不能為private,需要執行下面的發布方式:

npm publish --access public

注意每次提交版本號都要比上次的高

  • 測試是否提交成功

去官網你的賬號下面看一下有沒有
或者直接npm下載下來

npm i mtmap

npm的版本控制

在我們的package.json里面有一個version字段 ,每次提交到npm,版本號需要增加。 或者自己手動修改,或者使用 “npm version <update_type>” 命令

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>自動改變版本
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

郵箱未驗證,去官網驗證一下郵箱

通過CDN訪問

這里使用的是jsdelivr

地址格式為:

https://cdn.jsdelivr.net/npm/(your packagename)@(version)/(file)

如:

https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM