【面试题】:前端怎么实现组件的封装和上传

第一步:创建空白文件夹并安装依赖

创建 package.json npm init -y

安装 vue-loader npm install vue-loader

安装 webpacl webpack-cli npm install webpacl webpack-cli -D

第二步:创建 src 目录及文件

创建src目录

在src目录下创建components文件夹来存放我们的组件

在src目录下创建index.js入口文件

在components文件夹下创建testH1.vue组件

第三步:编写我们的组件 testH1.vue

<template>

<h1 class="test-h1-box">

<slot>测试文字</slot>

</h1>

</template>

<script>

export default {

name: 'testH1'

}

</script>

<style>

.test-h1-box{

background: red;

color: green;

text-align: center

}

</style>

第四步:编辑 src 目录下的入口文件 index.js

// 引入组件

import sliderVerify_vue from './components/index.vue'

// 创建 install 函数

// vue.use 会默认查找并调用 install 函数

const SliderVerify = {

install: (Vue) => {

// 注意:第一个参数是组件名称,我们在页面引用时用到

Vue.component(sliderVerify_vue.name, sliderVerify_vue)

}

}

// 暴露 install 函数

export default SliderVerify;

第五步:在 testH1 目录下创建webpack.config.js,同 package.json 同级

const path = require('path')

module.exports = {

devtool: "source-map",

// 模式

// mode: 'development', // 开发模式 生成普通 js 文件

mode: 'production', // 生产模式 生成 .min.js 压缩文件

// 入口

entry: path.join(__dirname, './src/index.js'),

// 出口

output: {

path: path.resolve(__dirname, 'dist'),

publicPath: path.resolve(__dirname, 'dist'),

// filename: 'testH1.js', // 生成的文件名 对应 开发模式

filename: 'testH1.min.js', // 生成的文件名 对应 生产模式

libraryTarget: 'umd', // 支持 ems / commontjs / requirejs 规范

// libraryTarget: 'amd' // 支持 requirejs 规范

umdNamedDefine: true

},

module: {

rules: [{

test: /\.vue$/,

loader: 'vue-loader'

}]

}

}

打包

打包命令 npx webpack

第六步:编辑 package.json 文件

{

"name": "test-h1",

"version": "1.0.0",

"description": "自定义 h1 标签",

"main": "dist/testH1.min.js",

"scripts": {

"test": "echo \"Error: no test specified\" && exit 1"

},

"keywords": [

"H1",

"标签",

"vue",

"vue插件"

],

"author": "Mr.test",

"license": "MIT",

"devDependencies": {

"vue-loader": "^14.2.4",

"webpack": "^5.21.2",

"webpack-cli": "^4.5.0"

}

}

第七步:编辑 README.md

安装

npm install testH1

引入

import testH1 from 'testH1'

全局注册

Vue.use(testH1);

页面使用

<testH1> 文字内容 </testH1>

第八步:发布至 NPM

在npm官网注册账号:用户名 邮箱 密码

npm配置的中央仓库应是npm,如不是则运行以下命令 npm config set registry https://registry.npmjs.org/

添加用户,配置

npm addUser

依次添加:userName、password 和 Email

只需添加一次即可

上传至 npm npm publish

相关推荐
web小白成长日记2 小时前
企业级 Vue3 + Element Plus 主题定制架构:从“能用”到“好用”的进阶之路
前端·架构
孙严Pay2 小时前
快捷支付:高效安全的在线支付新选择
笔记·科技·计算机网络·其他·微信
じ☆冷颜〃2 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
APIshop2 小时前
Python 爬虫获取 item_get_web —— 淘宝商品 SKU、详情图、券后价全流程解析
前端·爬虫·python
风送雨2 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
XTTX1102 小时前
Vue3+Cesium教程(36)--动态设置降雨效果
前端·javascript·vue.js
数据皮皮侠AI3 小时前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
LYFlied3 小时前
WebGPU与浏览器边缘智能:开启去中心化AI新纪元
前端·人工智能·大模型·去中心化·区块链
Setsuna_F_Seiei3 小时前
2025 年度总结:人生重要阶段的一年
前端·程序员·年终总结
model20053 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端