vue2模版编译前期工程搭建

69 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情

一般我们开发js框架或者js库是不会用webpack打包的,webpack是项目打包工具,因为要处理的东西很多,如css,scsss,less,js,vue模版这些东西

我们介绍另外一个打包工具rollup,主要打包的是js(当然也可以打包css),但是最主要还是打包js,像我们开发这种js库或者js框架的话,大部分都是用这种打包工具,比较轻,vue2、vue3、react的源码也是用的rollup,我们来看下rollup需要那些依赖

packjson.js需要下载这些依赖 前两个babel主要是编译js语法用,用这个babel 需要再配置一个.babelrc文件

  • rollup是主要压缩工具
  • rollup-plugin-babel需要这个插件来支持rollup支持babel
  • rollup-plugin-commonjs rollup本身并不支持文件下面直接找index
  • rollup-plugin-serve相当于dev-server
import test from 'test' / /这种就直接找的是test下面的index.js 但是rollup并不支持
// 所以需要下载rollup-plugin-commonjs依赖 就可以支持了

     "scripts": {
        "dev": "rollup -c -w" // rollup相当于webpack -c 相当于-config -w 相当于watch
     },

    "@babel/core": "^7.11.6",
    "@babel/preset-env": "^7.11.5",
    "rollup": "^2.26.11",
    "rollup-plugin-babel": "^4.4.0",
    "rollup-plugin-commonjs": "^10.1.0",
    "rollup-plugin-serve": "^1.0.4"

.babelrc文件内容

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

我们也可以看下配置文件和webpack有什么不同rollup配置文件的名字rollup.config.js

import babel from 'rollup-plugin-babel'
import serve from 'rollup-plugin-serve'
import commonjs from 'rollup-plugin-commonjs'

export default {
    input: './src/index.js',
    output: {
        format: 'umd', // 生成包的模式 支持很多模式amd cjs等等很多
        name: 'Vue', // 包的名称 会在全局注册这个name 这样才能在你项目中全局使用
        file: 'dist/umd/vue.js', // 打包目录
        sourcemap: true// 源码映射的问题,方便我们查看问题
    },
    plugins: [
        babel({
            exclude: 'node_modules/**' // babel忽略所有node_modules下的文件
        }),
        serve({ // dev-server
            open: true, // 打开浏览器 // 如果是windows系统需要我们设置默认浏览器
            port: 3000, // 端口号
            contentBase: "", // 变异内容基础目录
            openPage: "/index.html" // 打开的html
        }),
        commonjs() // 执行一下commonjs函数就可以了
    ]
}