vue-cli4 创建项目并结合webpack打包vue组件库

一、安装vue-cli4

参照vue官网步骤如下:

// 安装vue-cli包
npm install -g @vue/cli
// 安装之后,查看版本信息
vue --version
// 升级vue-cli包
npm update -g @vue/cli

这里只写npm的步骤,详情建议看官网:vue-cli官网

二、创建项目

1、创建项目

vue create hello-world

2、配置步骤:(备注,用cmd,不要用git,因为git不可以用空格选中)

  • 根据需要选择常规配置即可
    – 请参考链接
三、开发组件库
  • 项目目录
四、package.json配置
  • package.json配置(只写明必要配置),如下:
  "name": "hello-world",  // 组件库名称
  "version": "0.0.1", // 当前发布的版本
  "license": "MIT", // 让用户知道使用权利和限制[npm package.json](https://docs.npmjs.com/files/package.json)
  "private": false, // 设置为true时,则npm会拒绝发布它
  "author": "xxx", // 发布者
  "main": "dist/index.js" // 项目入口文件
  "scripts": {
   	 "build:lib": "webpack --config lib.config.js" // 打包命令
   }
五、webpack打包配置
  • 安装webpack依赖
npm install --save-dev webpack webpack-cli babel-loader
  • 安装相关loader
npm install --save-dev  vue-loader style-loader css-loader 
  • 项目目录下创建文件夹,lib.config.json
    这里仅仅是常规配置,配置webpack出口入口,以及必要的loader
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const ProgressBarPlugin = require('progress-bar-webpack-plugin');

function resolve(dir) {//- 获取绝对路径
    return path.join(__dirname, '..', dir)
}
module.exports = {
    entry: {
      'hello-world.min': './src/components/index.js'
    },
    mode: 'production',
    output: {
      path: path.resolve(__dirname, './dist'),
      publicPath: '/dist/',
      libraryExport: 'default', // 对外暴露default属性,就可以直接调用default里的属性
      library: 'hello-world', // // 指定类库名,主要用于直接引用的方式(比如使用script 标签)
      libraryTarget: 'umd', // 定义打包方式
      umdNamedDefine: true,
      filename: 'hello-world.min.js'
    },
    resolve: {
      extensions: ['.js', '.vue', '.json'],
      alias: {
        '@': resolve('src'),
      }
    },
    module: {
      rules: [
         {
            test: /\.vue$/,
            loader: 'vue-loader'
         },
         {
             test: /\.js$/,
             exclude: /node_modules/,
             loader: 'babel-loader'
         },
         {
             test: /\.css|\.scss$/,
             loader:['style-loader','css-loader','sass-loader']
          }
      ] 
    },
    plugins: [
        new ProgressBarPlugin(),
        new VueLoaderPlugin()
    ]
}
六、发布
  • 打包项目
npm run build:lib
  • 通过npm进行发布
npm publish
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值