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

vue組件發(fā)布成npm包

 更新時間:2024年01月26日 10:48:51   作者:YUJIAN。  
平常使用Vue開發(fā)時,一個項目中多個地方需要用到的相同組件通常我們會封裝為一個公共組件,所以我們可以將封裝好的組件打包發(fā)布至npm,本文主要介紹了vue組件發(fā)布成npm包,具有一定的參考價值,感興趣的可以了解一下

前言

工作中多個項目用到了同一個組件,每次修復bug或者增加新功能后都需要同步更新每個項目的代碼,然后想到可以通過發(fā)布成npm包的形式來實現(xiàn)代碼統(tǒng)一。此文以蘋果電腦為例,如果是windows系統(tǒng),可能略有差別。

一、環(huán)境準備

1.首先最基本的需要安裝nodejs,版本推薦 v10 以上,因為需要安裝vue-cli

2.安裝vue-cli

npm install -g @vue/cli

可能會報錯,如下:

在這里插入圖片描述

這是因為沒有權限,重新執(zhí)行如下命令:

sudo npm install -g @vue/cli

在這里插入圖片描述

輸入密碼,按回車即可

二、初始化項目

1.構建項目

vue create vue-link-demo

這里可以選擇vue2或者vue3,我這里選擇的vue3

在這里插入圖片描述

構建完成后的目錄如下:

在這里插入圖片描述

2.開發(fā)組件/加入組件

可以將已經編寫好的組件移動到components目錄下,或者新建一個vue組件,步驟是一樣的。

例如我這里新建了一個HelloWorld.vue組件,需要注意的是,組件必須有name,這將會是用戶使用的組件名稱

在這里插入圖片描述

然后修改App.vue

在這里插入圖片描述

運行項目npm run serve,可以看到正常運行

在這里插入圖片描述

最后一步,增加在src文件夾下新建index.js文件

// src/index.js
import HellowWorld from '@/components/HellowWorld.vue';
 
// 將引入的組件模塊存儲,如果是組件庫,則在這里引入多個組件即可
const components = [ HellowWorld ];
 
const install = (Vue,options) => {
  if (install.installed) return;
  install.installed = true
  components.forEach(component => {
  // 這里可以看出,為什么上文強調組件必須有name
    Vue.component(component.name, component)
  })
}
// 如果是直接引入的vue.js方式,則會掛到window下
if (typeof window !== 'undefined' && window.Vue) {
  install(window.Vue)
}
export default {
  // 使用Vue.use必須具有install方法
  // https://cn.vuejs.org/v2/api/#Vue-use
  install,
  ...components
}

3. 修改配置文件

將項目根目錄下的package.json文件:

1. scripts修改start和build命令:

```c
"scripts": {
    "serve": "vue-cli-service serve",
    "start": "vue-cli-service build --target lib --name vue-link-demo --dest lib src/index.js --watch",
    "build": "vue-cli-service build --target lib --name vue-link-demo --dest lib src/index.js",
    "build:app": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  }

這里的–target lib是 vue-cli 自帶的打包命令,此命令會將入口文件打包成一個庫碼,具體可參考官網說明vue-cli官方文檔–name 指的是打包后的文件名
–dest 指文件夾的名稱

緊跟的src/index.js 指的是執(zhí)行上文新建的index文件,暴露install方法

在這里插入圖片描述

執(zhí)行命令

npm run start

執(zhí)行成功之后會在項目根目錄增加lib文件夾:

在這里插入圖片描述

如果組件庫過大,可能會報錯:allocation failure scavenge might not succeed。可以通過關閉內聯(lián)css(下文有介紹)或者修改--max_old_space_size=10000(可自行百度)嘗試解決

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  // 為false則強制內聯(lián),區(qū)別是最終lib文件夾中不會生成單獨的css文件
  // 設置為true,則不會內聯(lián)css,最紅lib文件如上圖會有單獨的css文件生成,用戶使用組件包時需要在main.js中手動引入:import 'vue-libs-demo/lib/vue-libs-demo.css'
  css: { extract: true }
})
  • 修改package.json文件中main配置項——外部訪問項目包的入口文件;
// 最終lib文件夾生成的umd.js
"main": "lib/vue-link-demo.umd.js"

三、調試

1、執(zhí)行打包命令

// 開發(fā)環(huán)境執(zhí)行
npm run start 
// 正式發(fā)布執(zhí)行 npm run build

2、發(fā)布本地連接包

npm link

3、測試項目

按上面構建項目的步驟重新新建一個項目用于測試(或者用隨便一個就項目都行),然后在測試項目的目錄終端執(zhí)行

npm link vue-link-demo

然后修改測試項目的main.js:

import olMap from 'ol-map-vue'
import 'ol-map-vue/lib/ol-map.css'
const app = createApp(App)
app.use(olMap)
app.mount('#app')
// 如果為vue2寫法略有不同哦

在App.vue中使用:

<template>
  <div class="container">
    <HelloWorld msg="測試組件" />
  </div>
</template>

然后運行項目

npm run serve

四、發(fā)布使用

測試沒問題后就可以發(fā)布到nodejs了

1、注冊

注冊npm賬號 點擊注冊

2、本地登陸

按步驟注冊完成以后,打開命令行工具,并定位到項目目錄
中間會需要輸入用戶名、密碼、郵箱、郵箱驗證碼

在這里插入圖片描述

如果中間出錯的話,可能是由于設置了淘寶鏡像,重新設置一下即可:

npm config set registry https://registry.npmjs.org/

3、發(fā)布

執(zhí)行命令

npm publish

在這里插入圖片描述

顯示正在發(fā)布中。
可能會報錯如下,是由于命名沖突了:

在這里插入圖片描述

驗證是否是由于命名問題導致的,可以執(zhí)行命令:

npm view react

在這里插入圖片描述

果不其然,修改名稱即可。修改完后重新發(fā)布npm publish

在這里插入圖片描述

最后一行出現(xiàn) +包名@版本號 即表示發(fā)布成功了
登陸npmjs,可以看到發(fā)布成功了。

在這里插入圖片描述

4.使用

在測試項目中卸載連接包

npm unlink vue-link-demo

然后安裝發(fā)布成功的包

npm install vue-link-demo --save

最后運行

npm run serve

可以正確顯示即表示成功。
中間可能會出現(xiàn)一些問題,但是如果按照文章的步驟來,流程應該是沒錯的,可以排查一下代碼錯誤。

到此這篇關于vue組件發(fā)布成npm包的文章就介紹到這了,更多相關vue發(fā)布成npm包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue.js實現(xiàn)的購物車功能詳解

    Vue.js實現(xiàn)的購物車功能詳解

    這篇文章主要介紹了Vue.js實現(xiàn)的購物車功能,結合實例形式分析了vue.js購物車的原理、數值計算及頁面元素屬性動態(tài)操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-01-01
  • vue中v-html妙用及空白行消除方式

    vue中v-html妙用及空白行消除方式

    這篇文章主要介紹了vue中v-html妙用及空白行消除方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 在vue項目中promise解決回調地獄和并發(fā)請求的問題

    在vue項目中promise解決回調地獄和并發(fā)請求的問題

    這篇文章主要介紹了在vue項目中promise解決回調地獄和并發(fā)請求的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 基于Vue-cli快速搭建項目的完整步驟

    基于Vue-cli快速搭建項目的完整步驟

    這篇文章主要給大家介紹了關于如何基于Vue-cli快速搭建項目的完整步驟,文中通過示例代碼以及圖片將搭建的步驟一步步介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • 使用Vue 自定義文件選擇器組件的實例代碼

    使用Vue 自定義文件選擇器組件的實例代碼

    這篇文章主要介紹了使用Vue 自定義文件選擇器組件的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • vue中將網頁打印成pdf實例代碼

    vue中將網頁打印成pdf實例代碼

    本篇文章主要介紹了vue中將網頁打印成pdf實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 在vue中實現(xiàn)點擊選擇框阻止彈出層消失的方法

    在vue中實現(xiàn)點擊選擇框阻止彈出層消失的方法

    今天小編就為大家分享一篇在vue中實現(xiàn)點擊選擇框阻止彈出層消失的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue3點擊出現(xiàn)彈窗后背景變暗且不可操作的實現(xiàn)代碼

    vue3點擊出現(xiàn)彈窗后背景變暗且不可操作的實現(xiàn)代碼

    這篇文章主要介紹了vue3點擊出現(xiàn)彈窗后背景變暗且不可操作的實現(xiàn)代碼,本文通過實例代碼圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • vue中子組件傳遞數據給父組件的講解

    vue中子組件傳遞數據給父組件的講解

    今天小編就為大家分享一篇關于vue中子組件傳遞數據給父組件的講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • vue項目啟動時無法識別es6的擴展語法的解決

    vue項目啟動時無法識別es6的擴展語法的解決

    啟動項目時遇到ES6的拓展運算符報錯可以通過切換到淘寶鏡像,以及在項目根目錄下新增.babelrc和postcss.config.js文件來解決,這些操作有助于正確配置項目環(huán)境,從而避免報錯,并保證項目的順利運行,希望這些經驗能夠幫助到遇到相同問題的開發(fā)者
    2024-10-10

最新評論