Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vue3 + vite 编写组件并上传到npmjs #29

Open
heikaimu opened this issue Oct 14, 2021 · 0 comments
Open

vue3 + vite 编写组件并上传到npmjs #29

heikaimu opened this issue Oct 14, 2021 · 0 comments

Comments

@heikaimu
Copy link
Owner

heikaimu commented Oct 14, 2021

创建项目

yarn create @vitejs/app

在src下创建打包入口文件index.js

import TestComp from "./components/TestComp";
export default TestComp;

修改vite.config.js,添加打包lib配置

  build: {
    lib: {
      entry: path.resolve(__dirname, 'src/index.js'),
      name: 'TestComp,
      fileName: format => `test-comp.${format}.js`
    },
    rollupOptions: {
      // 不想被打包进来的依赖
      external: [
        'vue'
      ],
      // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
      output: {
        globals: {
          vue: 'Vue'
        }
      }
    }
  }

打包lib

vite build

打包完成后生成dist文件夹,包含文件style.css, test-comp.es.js, test-comp.umd.js

配置package.json

  "name": "test-comp",
  "version": "1.0.0",
  "files": [
    "dist"
  ],
  "module": "./dist/test-comp.es.js",
  "main": "./dist/test-comp.umd.js",
  "exports": {
    ".": {
      "import": "./dist/test-comp.es.js",
      "require": "./dist/test-comp.umd.js"
    },
    "./dist/style.css": {
      "import": "./dist/style.css",
      "require": "./dist/style.css"
    }
  },

发布到npm

npm publish

使用组件

import TestComp from "test-comp";
import "test-comp/dist/style.css"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant