当前位置: 首页 > news >正文

把网站做成app多少钱黄骅港十里金沙滩门票

把网站做成app多少钱,黄骅港十里金沙滩门票,网页设计布局图,电子商务网站建设 精品课程rollup rollup是一个javascript的模块化打包工具 可以帮助我们编译小的代码到一个大的负载的代码中 比如一个库或者一个应用 rollup与webpack的区别 rollup主要针对ES Module进行打包 另外webpack通常可以通过各种loader处理各种各样的文件 以及处理他们的依赖关系 rollup更多…

rollup

rollup是一个javascript的模块化打包工具 可以帮助我们编译小的代码到一个大的负载的代码中 比如一个库或者一个应用

rollup与webpack的区别
rollup主要针对ES Module进行打包
另外webpack通常可以通过各种loader处理各种各样的文件 以及处理他们的依赖关系
rollup更多时候专注于处理javascript代码的(当然也可以处理css font vue等文件)
rollup的配置和理念相对于webpack来收 更加的简洁和容易理解
在早期webpack不支持tree shaking时 rollup具备更强的优势

通常在实际项目开发过程中 都会使用webpack

rollup的基本使用

npm install rollup

创建main.js 打包到bundle.js
打包浏览器的库
npx rollup ./src/main.js -f iife -o dist/bundle.js
打包AMD的库
npx rollup ./src/main.js -f amd -o dist/bundle.js
打包CommonJS的库
npx rollup ./src/main.js -f cjs --o dist/bundle.js
打包通用的库(必须跟上name)
npx rollup ./src/main.js -f umd --name mathUtil -o dist/bundle.js

rollup的配置

module.exports = {//入口input: "./lib/index.js",//出口output: [{format: "umd",name: "whyUtils",file: "./build/bundle.umd.js",},{format: "cjs",file: "./build/bundle.cjs.js",},{format: "amd",file: "./build/bundle.amd.js",},{format: "iife",file: "./build/bundle.browser.js",},],
};

解决rollup和第三方库的问题

安装解决commonjs的库
npm install @rollup/plugin-commonjs

安装解决node_modules的库
npm install @rollup/plugin-node-resolve

const commonjs = require("@rollup/plugin-commonjs")
const resolve = require("@rollup/plugin-node-resolve")module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [resolve(),commonjs()],
};

Babel转换代码

安装rollup对应的babel插件
npm install @rollup/plugin-babel
修改配置文件

const {babel} = require("@rollup/plugin-babel")module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [babel({babelHelpers: "bundled",exclude: /node_modules/})],
};

babel.config.js文件
npm install @babel/preset-env

module.exports = {presets: ["@babel/preset-env"]
}

Terser代码压缩

如果我们希望对代码进行压缩 可以使用@rollup/plugin-terser
npm install @rollup/plugin-terser

const {babel} = require("@rollup/plugin-babel")
const terser = require("@rollup/plugin-terser")
module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [babel({babelHelpers: "bundled",exclude: /node_modules/}),terser()],
};

处理css文件

npm install rollup-plugin-postcss postcss
配置postcss的插件

const postcss = require("rollup-plugin-postcss postcss");module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [postcss()],
};

处理vue文件

处理vue文件 我们需要使用rollup-plugin-vue插件
但是注意默认 情况下我们安装的是vue3.x的版本 所以我们这里指定了以下rollup-plugn-vue的版本
npm install rollup-plugin-vue @vue/compiler-sfc

使用vue插件

const vue = require("rollup-plugin-vue");
module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [vue()],
};

在我们打包vue项目后 汇报process is not edefined的错误
这时因为我们在打包的vue代码中 用到process.env.NODE_ENV 所以我们可以使用一个插件rollup-plugin-replace设置它对应的值
npm install rollup-plugin-replace

const vue = require("rollup-plugin-vue");
const replace = require("rollup-plugin-replace");module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [vue(),replace({"process.envNODE_ENV": JSON.stringify("production"),}),],
};

搭建本地服务器

第一步 使用rollup-plugin-serve搭建服务
npm install rollup-plugin-serve

const serve = require("rollup-plugin-serve");module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [serve({port: 8000,open: true,contentBase: ".",}),],
};

第二步 当文件发生变化 自动刷新浏览器
npm install rollup-plugin-livereload

const serve = require("rollup-plugin-serve");
const livereload = require("rollup-plugin-livereload")module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: [serve({port: 8000,open: true,contentBase: ".",}),libereload()],
};

第三步 启动时 开启文件监听
npx rollup -c -w

区分开发环境

我们可以在package.json中创建一个开发和构建的脚本

  "scripts": {"serve":"rollup -c --environment NODE_ENV=development -w","build":"rollup -c --environment NODE_ENV=production "},
const serve = require("rollup-plugin-serve");
const livereload = require("rollup-plugin-livereload");
const postcss = require("rollup-plugin-postcss postcss");
const terser = require("@rollup/plugin-terser");
const vue = require("rollup-plugin-vue");
const replace = require("rollup-plugin-replace");const isProduction = process.env.NODE_ENV === "production";const plugins = [postcss(),vue(),replace({"process.envNODE_ENV": JSON.stringify("production"),}),
];if (isProduction) {plugins.push(terser());
} else {const extraPlugins = [serve({port: 8000,open: true,contentBase: ".",}),livereload(),];plugins.push(...extraPlugins);
}module.exports = {//入口input: "./lib/index.js",//出口output: {format: "umd",name: "utils",file: "./build/bundle.umd.js",},plugins: plugins,
};
http://www.yayakq.cn/news/385575/

相关文章:

  • 教育网站制作要多少钱做网站用平板吗
  • 如何做网站实现收入稳定石家庄营销型网站建设费用
  • 口碑好的做pc端网站培训方案怎么做
  • 为何建设银行网站无法登陆网站建设管理成本估计
  • 郴州网站建设哪家好ipad网页制作软件
  • 长沙网站建设好处永辉企业微信app下载安装
  • 湘潭市建设工程质量监督站网站申请网页域名
  • 旅游网站的设计方案怎么做wordpress后台添加主题设置
  • 建设阅读网站的目的重庆住房和城乡建设厅官方网站
  • 手机版网站seo怎么做龙泉做网站哪家好
  • 安陆做网站公司制作简历哪个网站好
  • asp.net购物网站模板一条龙建设网站
  • 南部网站建设制作企业网站作业网页模板
  • 建设网站cms可以做立体图形的网站
  • 美篇在哪个网站做的网站logo也叫做网站的
  • 交互网站建设需要做什么全国网站备案拍照
  • 网站二次开发wordpress静态生成
  • 女生做网站运营主题资源网站建设作业
  • 网站开发和编程有什么区别数据线厂家东莞网站建设
  • 企业模式网站列表管理器网站设计项目建设内容
  • 免费晋江网站建设九歌人工智能诗歌写作网站
  • 今天高清视频免费播放网站如何优化关键词
  • 网站建设如何更改背景图片网站如何注销
  • 个人网站 外贸高中生做网站
  • 网站登录页面空白wordpress注册邮箱设置
  • 黄页网站介绍国外的wordpress主题
  • 怎么创建免费的网站注册域名dns
  • 网站菜单导航制作网站怎么做微信推广
  • 做网站seo优化学校网站建设的流程
  • h5响应式网站建设报价中小学门户网站建设