稀土掘金 稀土掘金

Rollup构建TS项目

  1. 进入项目目录通过npm init -y生成package.json文件
  2. 新建rollup.config.js配置文件(前提全局安装rollup npm install rollup -g)
  3. 通过tsc --init 生成 tsconfig.json文件

image.png

  1. 安装一些打包的依赖
    1. 安装配置环境变量用来区分本地和生产npm install cross-env -D
    2. 安装热更新npm install rollup-plugin-livereload -D
    3. 引入外部依赖npm install rollup-plugin-node-resolve -D
    4. 替换环境变量给浏览器使用npm install rollup-plugin-replace -D
    5. 安装rollup``web服务npm install rollup-plugin-serve -D
    6. 安装代码压缩插件npm install rollup-plugin-terser -D
    7. 安装TypeScript转换器npm install rollup-plugin-typescript2 -D
    8. 安装TypeScript``npm install typescript -D

package.json如下

{
  "name": "rollupTs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "cross-env NODE_ENV=development  rollup -c -w",
    "build":"cross-env NODE_ENV=produaction  rollup -c"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "cross-env": "^7.0.3",
    "rollup-plugin-livereload": "^2.0.5",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-replace": "^2.2.0",
    "rollup-plugin-serve": "^1.1.0",
    "rollup-plugin-terser": "^7.0.2",
    "rollup-plugin-typescript2": "^0.31.1",
    "typescript": "^4.5.5"
  }
}
  1. 编写rollup.config.js
import path from 'path'
import ts from 'rollup-plugin-typescript2'
export default {
  input: './src/index.ts', //入口

  output: { //出口
    file: path.resolve(__dirname, './lib/index.js'),
    //以script方式引入
    format: 'umd'
  },

  //插件
  plugins: [
    //ts插件让rollup读取ts文件
    ts()
  ]
}
  • 此处需要修改tsconfig.json"module":"2015"
  • package.json文件中添加"build":"rollup -c"
  • 启动打包命令 npm run build,即可打包输出到lib文件夹下
  • package.json文件中添加"dev":"rollup -c -w"添加本地服务
  1. 引入serve插件启动前端服务
import path from 'path'
import ts from 'rollup-plugin-typescript2'
import serve from 'rollup-plugin-serve'
export default {
  input: './src/index.ts', //入口

  output: { //出口
    file: path.resolve(__dirname, './lib/index.js'),
    //以script方式引入
    format: 'umd'
  },

  //插件
  plugins: [
    //ts插件让rollup读取ts文件
    ts(),
    serve({
      open: true,
      port: 1988,
      openPage: '/public/index.html'
    })
  ]
}
  1. 引入livereload服务来启动热更新
import path from 'path'
import ts from 'rollup-plugin-typescript2'
import serve from 'rollup-plugin-serve'
import livereload from 'rollup-plugin-livereload'
export default {
  input: './src/index.ts', //入口

  output: { //出口
    file: path.resolve(__dirname, './lib/index.js'),
    //以script方式引入
    format: 'umd'
  },

  //插件
  plugins: [
    //ts插件让rollup读取ts文件
    ts(),
    serve({
      open: true,
      port: 1988,
      openPage: '/public/index.html'
    }),
    livereload() //热更新
  ]
}
  1. 配置代码压缩
import path from 'path'
import ts from 'rollup-plugin-typescript2'
import serve from 'rollup-plugin-serve'
import livereload from 'rollup-plugin-livereload'
import { terser } from 'rollup-plugin-terser'
export default {
  input: './src/index.ts', //入口

  output: { //出口
    file: path.resolve(__dirname, './lib/index.js'),
    //以script方式引入
    format: 'umd'
  },

  //插件
  plugins: [
    //ts插件让rollup读取ts文件
    ts(),
    serve({
      open: true,
      port: 1988,
      openPage: '/public/index.html'
    }),
    livereload(), //热更新
    terser(), //代码压缩
  ]
}
  1. 开启soucemap
  output: { //出口
    file: path.resolve(__dirname, './lib/index.js'),
    //以script方式引入
    format: 'umd',
    sourcemap:true,
  },

同时tsconfig.json文件中sourceMap:true打开

  1. 开启环境变量package.json
//cross-env NODE_ENV=环境变量
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "cross-env NODE_ENV=development  rollup -c -w",
    "build":"cross-env NODE_ENV=produaction  rollup -c"
  },
  1. 将环境变量添加到浏览器环境
import replace from 'rollup-plugin-replace'

  //插件
  plugins: [
    replace(
      {
        'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
        //还可以添加其他变量到全局环境
      }
    )
  ]

玻璃钢生产厂家莆田玻璃钢卡通雕塑厂家青岛公园玻璃钢雕塑定做玻璃钢雕塑猴子望月海口玻璃钢雕塑设计哪里有湖南景观玻璃钢雕塑制作开封肖像玻璃钢景观雕塑小品深圳走廊商场美陈费用河南大型商场美陈生产厂家聊城玻璃钢雕塑定制银川户外玻璃钢雕塑哪家好不锈钢水景玻璃钢人物雕塑制造下城区玻璃钢雕塑厂家武汉定制玻璃钢雕塑价位大型玻璃钢雕塑服务商重庆玻璃钢卡通雕塑松树高性价玻璃钢花盆组合杭州玻璃钢雕塑服务至上矿工玻璃钢雕塑定制龙南玻璃钢雕塑小品玻璃钢动物雕塑怎么样北京户外商场美陈供应商钦州玻璃钢座椅雕塑厂家房山区商场美陈专业的玻璃钢雕塑加工公司山东火烈鸟玻璃钢雕塑制作淮安五一商场美陈母亲节商场美陈图片大全海南玻璃钢雕塑定做莆田玻璃钢花盆价格台州玻璃钢马雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化