前言

以react为例子

webpack作为打包工具

准备工作

安装node

npm上注册账号 https://www.npmjs.com/

创建要上传组件

新建项目

生成package.json文件

npm init

安装依赖

npm i -D webpack webpack-cli @babel/core @babel/preset-env @babel/preset-react @babel-loader css-loader style-loader html-webpack-plugin webpack-dev-server clean-webpack-plugin webpack-node-externals

安装失败的,再单独安装

修改package.json文件

 "main": "dist/bundle.js",
"files": [
"dist/bundle.js"
],
"scripts": {
"start": "set NODE_ENV='development' && webpack-dev-server",
"dev": "set NODE_ENV='development' && webpack-dev-server",
"build": "set NODE_ENV='production' && webpack"
},

建目录和组件

可以放一个public/index.html ,方便查看效果

webpack.config.js
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin"); // 每次构建清除上一次打包出来的文件
const nodeExternals = require("webpack-node-externals");
const plugins = [new CleanWebpackPlugin()] module.exports = {
mode: "production",
entry: "./src/components/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "./dist"),
libraryTarget:"commonjs2" // 包需要被module.exports,这就要用到common
},
module: {
rules: [
{
test: /\.js$/,
use: "babel-loader",
exclude: /node_modules/,
},
{
test: /\.css$/,
use: ["style-loader", "css-loader"],
},
],
},
devServer: {
static: "./dist",
},
externals:[nodeExternals()], // nodeExternals 使得打包的组件中不包括任何 node_modules 里面的第三方组件,起到减小体积的作用。
plugins,
};
组件

index.js

src/app.js可以写一个运行起来看效果

建babelrc和忽略文件

.babelrc

{ "presets": ["@babel/preset-env", "@babel/preset-react"]}

.gitignore

如果上传git 需要

发布

npm view 【你的npm包名】查看你的包名是否被注册了
npm login 登录 根据提示输入账号、密码、邮箱
npm publish (注意publish命令只能用npm )

报错看是否是npm源

换源:
npm i -g nrm
nrm current 查看当前源
nrm ls查看自己的源
nrm use npm 切换源

更新

npm version patch
npm publish

离线部署

npm pack    生成tgz文件
引入:npm i xxxx.tgz

删除指定包版本

npm unpublish 【包名@版本号】

删除整个包

npm unpublish 【包名】 --force

从npm 下载自己的包后会有携带node_modules文件问题

  1. .npmignore

  1. 设置白名单

  1. 建一个文件放置打包后的文件和package.json



   //然后在此文件 :
npm publish

npm网站上效果

如何上传你的组件到npm的更多相关文章

  1. java文件上传-使用apache-fileupload组件

    目前文件上传的(框架)组件:Apache----fileupload .Orialiy – COS – 2008() .Jsp-smart-upload – 200M. 用fileupload上传文件 ...

  2. wepy开发小程序 大坑....本地调试ok,小程序上传体验版 组件出现问题

    如果你碰到的上述问题(本地调试ok,小程序上传体验版 各种莫名其妙的问题-卡死-组件属性失效-$apply()不起作用) 您需要关闭 微信开发者工具中: 1.微信开发者工具-->项目--> ...

  3. .JavaWeb文件上传和FileUpload组件使用

    .JavaWeb文件上传 1.自定义上传 文件上传时的表单设计要符合文件提交的方式: 1.提交方式:post 2.表单中有文件上传的表单项:<input type="file" ...

  4. 【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用

    参考:http://www.cnblogs.com/luotaoyeah/p/3321070.html 1.下载 uploadify 组件,copy至 Content文件夹 <link href ...

  5. javaWeb---文件上传(commons-FileUpload组件)

    FileUpload是Apache组织(www.apache.org)提供的免费的上传组件,但是FileUpload组件本身还依赖于commons组件,所以从Apache下载此组件的时候还需要连同co ...

  6. [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Angular4 后台管理系统搭建(10) - 做一个通用的可跨域上传文件的组件

    写的很慢,不知不觉这是第十篇了.但是我其他事情太多,只能抽空写下.现在angular4或angular2流行的上传方式是ng2-file-upload.它的功能很强大.但是我没有配置成可以跨域上传的. ...

  8. webAPP如何实现移动端拍照上传(Vue组件示例)?

    摘要:使用HTML5编写移动Web应用,主要是为了尝试一下“一套代码多处运行”,一个webapp几乎可以不加修改的运行在PC/Android/iOS等上面运行.但是写到现在觉得虽然这种方式弊大于利,不 ...

  9. java基础篇---文件上传(commons-FileUpload组件)

    上一篇讲解了smartupload组件上传,那么这一篇我们讲解commons-FileUpload组件上传 FileUpload是Apache组织(www.apache.org)提供的免费的上传组件, ...

  10. vue+element ui 的上传文件使用组件

    前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...

随机推荐

  1. 教育法学第六章单元测试MOOC

    第六章单元测试 返回 本次得分为:100.00/100.00, 本次测试的提交时间为:2020-09-06, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 单选(5分) "学习 ...

  2. 0 基础晋级 Serverless 高手课 — 初识 Serverless(上)

    应用 - 无服务器 2017- 2006 函数即服务 类似 云计算 (Serverless) faas 函数服务 + 后端数据库 账号服务 弹性,按量 服务器,客户端的终结 - 弹性 - 按量 优点 ...

  3. 数据结构与算法 | 二分搜索(Binary Search)

    二分搜索(Binary Search) 文承上篇,搜索算法中除了深度优先搜索(DFS)和广度优先搜索(BFS),二分搜索(Binary Search)也是最基础搜索算法之一. 二分搜索也被称为折半搜索 ...

  4. CAP 定理的含义(转)

    分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的. 分布式系统的最大难点,就是各个节点的状态如何同步.CAP 定理是这方面的基本定理,也是理解分布式系统的起 ...

  5. 一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享

    前言 接上篇 docker-bind 的使用搭建了一个 dns 服务,本篇将介绍另外一款 DnsServer 的部署和使用,更专注,更轻量. 特点 基于 .NET 7 实现 ,支持 Windows.L ...

  6. RTMP协议学习——从握手到播放

    从客户端发起播放请求,到rtrmp视频流开始播放,大致经过了握手->建立连接->创建流->播放这几步比较重要的步骤.下面我将结合wireshark的抓包,对其中的每个流程进行分析和学 ...

  7. disabled_button

    根据题目提示,是前端的知识 进入页面,flag按钮灰了按不下去 右键检查发现按钮地方的样式,发现有一个disabled,这里就直接把他删掉点击回车就可以点击了

  8. 华为云WebAssembly代码静态符号执行技术实现新突破

    本文分享自华为云社区<华为云WebAssembly代码静态符号执行技术实现新突破,相关论文被软件工程顶会ISSTA2023接收并荣获杰出论文奖>,作者:华为云软件分析Lab . WebAs ...

  9. iOS APP包分析工具

    介绍 分享一款用于分析iOSipa包的脚本工具,使用此工具可以自动扫描发现可修复的包体积问题,同时可以生成包体积数据用于查看.这块工具我们团队内部已经使用很长一段时间,希望可以帮助到更多的开发同学更加 ...

  10. Miller_Rabin 学习笔记

    费马小定理:对于任意一个质数满足:\(a^{p-1}\equiv1\pmod p\) 二次探测:对于任意一个奇质数满足:\(x^2\equiv1\pmod p\) 的解为 \(x=1\) 或 \(x= ...