欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何基于webpack創(chuàng)建plugin并發(fā)布npm包

 更新時間:2024年07月15日 10:14:49   作者:婷寶_知萌  
webpack 插件是一個具有 apply 方法的 JavaScript 對象,apply 方法會被 webpack compiler 調(diào)用,并且在 整個編譯生命周期都可以訪問 compiler 對象,這篇文章主要介紹了基于webpack創(chuàng)建plugin并發(fā)布npm包,需要的朋友可以參考下

webpack

1. 什么是webpack

webpack是一個模塊化打包工具,

  • 可以將零散的js文件打包到一個js文件中
  • 可以使用loader對對模塊的源代碼進(jìn)行轉(zhuǎn)換 再打包
  • 可以支持載入任何類型的文件
  • 有代碼拆解能力

2.webpack中有兩個重要的概念

loader: loader 讓 webpack 能夠去處理其他類型的文件,并將它們轉(zhuǎn)換為有效 模塊,以供應(yīng)用程序使用,以及被添加到依賴圖中。
plugin:插件目的在于解決 loader 無法實(shí)現(xiàn)的其他事

webpack 插件是一個具有 apply 方法的 JavaScript 對象。apply 方法會被 webpack compiler 調(diào)用,并且在 整個 編譯生命周期都可以訪問 compiler 對象。

3. 為什么基于webpack發(fā)布npm

利用了webpack的打包功能,將多個模塊和依賴項打包成一個或多個bundle同時還有webpack中的
source-map 映射源文件····

npm

1. 什么是npm

npm 是一個包管理工具,允許用戶從npm服務(wù)器上下載別人編寫的第三方包到本地使用,允許自己編寫的包供別人使用
npm常見的安裝命令

npm i 包的名字@<版本號>  // 版本號可省略

安裝完成的包會在node_modules 目錄下

2.創(chuàng)建包的過程

npm init --yes 初始化一個 package.json

package.json 用于定義包的屬性常見的有
version 包的版本號
description 包的描述
script 自動化腳本語言…

npm install webpack webpack-cli --save

【 webpack 是 webpack 的核心模塊 webpack-cli 是 Webpack 的 CLI 程序,用來在命令行中調(diào)用 webpack】

npx webpack --version
-npx webpack進(jìn)行打包構(gòu)建 打包之后的文件在 dist 文件夾下

3.webpack的相關(guān)配置

上面的代碼中我們安裝了webpack webpack cli 說明我們是基于webpack進(jìn)行的包的創(chuàng)建
下面我們進(jìn)行webpack的相關(guān)配置

webpack的相關(guān)概念

  • mode : 選擇打包的環(huán)境
  • entry:入口
  • output:出口
  • loader: 用于對模塊的源代碼進(jìn)行轉(zhuǎn)換
  • plugin: 用于解決 loader 無法解決的事情 –

4.基于webpack中的apply實(shí)現(xiàn)插件并暴露

webpack官網(wǎng) 重點(diǎn)
官網(wǎng)中有說到

//webpack 插件是一個具有 apply 方法的 JavaScript 對象。apply 方法會被 webpack compiler 調(diào)用,并且在 整個 編譯生命周期都可以訪問 compiler 對象
//ConsoleLogOnBuildWebpackPlugin.js  插件
onst pluginName = 'ConsoleLogOnBuildWebpackPlugin';
class ConsoleLogOnBuildWebpackPlugin {
  apply(compiler) {
    compiler.hooks.run.tap(pluginName, (compilation) => {
      console.log('webpack 構(gòu)建正在啟動!');
    });
  }
}
module.exports = ConsoleLogOnBuildWebpackPlugin;

5.webpack.config.js中的相關(guān)配置

// webpack.config.js 配置
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack'); // 訪問內(nèi)置的插件
const path = require('path');
module.exports = {
  entry: './path/to/my/entry/file.js',
  output: {
    filename: 'my-first-webpack.bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        use: 'babel-loader',
      },
    ],
  },
  plugins: [
    new webpack.ProgressPlugin(),
    new HtmlWebpackPlugin({ template: './src/index.html' }),
  ],
};

三 發(fā)布包

首先需要注冊npm npm官網(wǎng)
在對應(yīng)的插件目錄下登錄:執(zhí)行npm login

npm login

登錄npm賬號,登錄前先檢查一下npm源,很多人開發(fā)是已將把npm 源換成了淘寶鏡像或者自己公司內(nèi)部的,但是發(fā)布需要npm本身的源:https://registry.npmjs.org/

執(zhí)行成功之后會給你注冊的郵箱發(fā)布一個一次性的秘密輸入之后登錄

顯示Logged… 表示登錄成功
登錄成功之后執(zhí)行 npm puiblish實(shí)現(xiàn)發(fā)布

npm puiblish // 發(fā)布包

顯示下面表示發(fā)布成功

// 報錯
PS E:\practice-once-a-day\bundlesize-webpack-plugin> npm publish
npm notice Publishing to https://registry.npmjs.org with tag latest and default access
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/08-webpack-npm - 08-webpack-npm cannot be republished until 24 hours have passed.
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.
npm ERR! A complete log of this run can be found in: C:\Users\11\AppData\Local\npm-cache\_logs\2024-07-11T12_27_54_985Z-debug-0.log

原因:

等待 24 小時:如果你之前已經(jīng)發(fā)布了 08-webpack-npm 的 1.0.0 版本,你需要等待 24 小時后才能再次發(fā)布同一版本。
發(fā)布新版本:如果你想更新 08-webpack-npm 包,考慮更改版本號,遵循語義化版本控制規(guī)則,例如發(fā)布 1.0.1 或 1.1.0。

發(fā)布packege包到npm

項目根路徑輸入 npm login 后按要求填寫賬號密碼,然后輸入 npm publish 發(fā)布包。

其他

到此這篇關(guān)于基于webpack創(chuàng)建plugin并發(fā)布npm包的文章就介紹到這了,更多相關(guān)webpack創(chuàng)建plugin發(fā)布npm包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript之Object類型介紹

    JavaScript之Object類型介紹

    這篇文章主要介紹了JavaScript之Object類型介紹,本文講解了創(chuàng)建Object類型的兩種方法以及訪問Object類型的方法,需要的朋友可以參考下
    2015-04-04
  • js 彈出菜單/窗口效果

    js 彈出菜單/窗口效果

    想象一下,你把一個重要內(nèi)容放在一個彈出窗口,又不聚集到這個窗口。讓使用屏幕閱讀器的同學(xué)情何以堪,只有當(dāng)他們 tab 到這頁面結(jié)束,還繼續(xù) tab,才可能找到這個彈窗
    2011-10-10
  • 詳解JS中定時器setInterval和setTImeout的this指向問題

    詳解JS中定時器setInterval和setTImeout的this指向問題

    在js中setTimeout和setInterval都是用來定時的一個功能,下面這篇文章主要給介紹了JS中setInterval和setTImeout的this指向問題,文中通過示例介紹的很詳細(xì),有需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01
  • 教你使用javascript簡單寫一個頁面模板引擎

    教你使用javascript簡單寫一個頁面模板引擎

    不知道你有木有聽說過一個基于Javascript的Web頁面預(yù)處理器,叫做AbsurdJS。只是打算寫一個CSS的預(yù)處理器,后來擴(kuò)展到了CSS和HTML,可以用來把Javascript代碼轉(zhuǎn)成CSS和HTML代碼。當(dāng)然,由于可以生成HTML代碼,你也可以把它當(dāng)成一個模板引擎,用于在標(biāo)記語言中填充數(shù)據(jù)。
    2015-05-05
  • javascript 設(shè)計模式之組合模式原理與應(yīng)用詳解

    javascript 設(shè)計模式之組合模式原理與應(yīng)用詳解

    這篇文章主要介紹了javascript 設(shè)計模式之組合模式原理與應(yīng)用,結(jié)合實(shí)例形式分析了javascript組合模式基本概念、原理、應(yīng)用場景及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • JavaScript將數(shù)字轉(zhuǎn)換成大寫中文的方法

    JavaScript將數(shù)字轉(zhuǎn)換成大寫中文的方法

    這篇文章主要介紹了JavaScript將數(shù)字轉(zhuǎn)換成大寫中文的方法,涉及javascript字符串及匹配的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • js實(shí)現(xiàn)幻燈片輪播圖

    js實(shí)現(xiàn)幻燈片輪播圖

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)幻燈片輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 微信小程序嵌入H5頁面(web-view)的方法詳解

    微信小程序嵌入H5頁面(web-view)的方法詳解

    使用<web-view>標(biāo)簽?zāi)茉谛〕绦蛑写蜷_外部網(wǎng)頁,但是要打開的網(wǎng)頁的域名必須跟小程序的業(yè)務(wù)域名(業(yè)務(wù)域名可以在小程序的后臺管理界面添加)一致,否則在真機(jī)上是打不開的,下面這篇文章主要給大家介紹了關(guān)于微信小程序嵌入H5頁面(web-view)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • js如何實(shí)現(xiàn)小程序wx.arrayBufferToBase64方法實(shí)例

    js如何實(shí)現(xiàn)小程序wx.arrayBufferToBase64方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于js如何實(shí)現(xiàn)小程序wx.arrayBufferToBase64方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-03-03
  • 微信小程序MUI導(dǎo)航欄透明漸變功能示例(通過改變rgba的a值實(shí)現(xiàn))

    微信小程序MUI導(dǎo)航欄透明漸變功能示例(通過改變rgba的a值實(shí)現(xiàn))

    這篇文章主要介紹了微信小程序MUI導(dǎo)航欄透明漸變功能,結(jié)合實(shí)例形式分析了通過改變rgba的a值實(shí)現(xiàn)透明度漸變功能的相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01

最新評論