日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue 组件发布记录

發(fā)布時間:2024/1/17 vue 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 组件发布记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有段時間沒做獨立的 vue 組件了,最近突然想把一個常用的 vue 組件打成一個 npm 包,方便使用。好久不用,發(fā)現(xiàn)已經(jīng)忘記環(huán)境怎么搭建。翻看以前的組件,才慢慢回想起來,中間還出現(xiàn)些問題。在這記錄下開發(fā)過程,以備忘。

一、新建工程

打成 npm 包的 vue 組件一般不會太復(fù)雜,當(dāng)然如果是做一個 UI 庫( 如:element-ui ),那另說。這里使用 vue-cli官方提供的 webpack-simple 模板來創(chuàng)建工程

vue init webpack-simple <project-name> 復(fù)制代碼

二、初始化工程,安裝相關(guān)依賴

yarn install 復(fù)制代碼

三、創(chuàng)建組件相關(guān)目錄

1、src 目錄下新建 lib 文件夾,用來放置組件相關(guān)的文件。

2、在 lib 下新建 index.js 文件,用來導(dǎo)出組件。index.js 內(nèi)容如下:

import Demo from './demo.vue'const demo = {install (Vue) {Vue.component(Demo.name, Demo)} } // IIFE if (typeof window !== 'undefined' && window.Vue) { window.Vue.use(demo) } export default demo 復(fù)制代碼

3、在 lib 下新建 demo.vue 文件,作為組件入口文件。demo.vue 內(nèi)容如下:

<template><!--組件 html 結(jié)構(gòu)--> </template><script>export default {name: "Demo",props: {},data() {return {};},mounted() {},methods: {} }; </script><style scoped></style> 復(fù)制代碼

三、修改 webpack.config.js,進行編譯相關(guān)配置

const path = require('path') const webpack = require('webpack') const ENV = process.env.NODE_ENV.trim() const pJson = require('./package.json')module.exports = { // 入口,區(qū)分 ENV 環(huán)境變量entry: ENV==='production' ?'./src/lib/index.js':'./src/main.js', // 輸出output: ENV==='production' ?{path: path.resolve(__dirname, './dist'),publicPath: '/dist/',filename: pJson.name + '.js',library: pJson.name, libraryTarget: 'umd', umdNamedDefine: true }:{path: path.resolve(__dirname, './dist'),publicPath: '/dist/',filename: 'build.js'}, module: {rules: [{test: /\.css$/,use: [ 'vue-style-loader', 'css-loader'],}, {test: /\.vue$/,loader: 'vue-loader',options: {loaders: {} // other vue-loader options go here}},{test: /\.js$/,loader: 'babel-loader',exclude: /node_modules/},{test: /\.(png|jpg|gif|svg)$/,loader: 'file-loader',options: {name: '[name].[ext]?[hash]'}}]},resolve: {alias: { 'vue$': 'vue/dist/vue.esm.js'},extensions: ['*', '.js', '.vue', '.json']},devServer: {historyApiFallback: true,noInfo: true,overlay: true},performance: {hints: false},devtool: '#eval-source-map'}if (process.env.NODE_ENV === 'production') { module.exports.devtool = '#source-map'module.exports.plugins = (module.exports.plugins || []).concat([ new webpack.DefinePlugin({ 'process.env': {NODE_ENV: '"production"'}}), // source-map 配置,區(qū)分 ENV 環(huán)境變量new webpack.optimize.UglifyJsPlugin({sourceMap: ENV==='production' ? false : true,compress: {warnings: false}}), new webpack.LoaderOptionsPlugin({minimize: true})]) } 復(fù)制代碼

四、組件效果預(yù)覽

1、修改 src/main.js 導(dǎo)入組件

import Demo from './lib/index.js' Vue.use(Demo) 復(fù)制代碼

2、修改 src/App.vue 使用組件

<template><div id="app"><Demo/></div></template> 復(fù)制代碼

3、運行 ,瀏覽器預(yù)覽效果

yarn run dev 復(fù)制代碼

五、發(fā)布

1、修改 package.json

"name": "demo", "main": "dist/demo.js", "private": false, 復(fù)制代碼

2、修改 .gitignore ,刪除 dist 條目,如果不刪除,提交時會忽略 dist 文件夾的內(nèi)容,發(fā)布后 npm 安裝使用時,會找不到文件,因為組件編譯好的文件是放在 dist 目錄下。

3、編寫 README ,介紹組件的功能

4、發(fā)布( 默認已有帳號,且已登錄 )

yarn run build npm config set registry=https://registry.npmjs.org npm publish 復(fù)制代碼

總結(jié)

以上是生活随笔為你收集整理的vue 组件发布记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。