# 命令行调用

Rollup 提供了两种调用方式 命令行调用代码调用

# 安装 Rollup

首先,下载并本地安装 Rollup

npm install rollup
成功
1

查看 Rollup 版本

./node_modules/.bin/rollup --version
# 或者
npx rollup --version
成功
1
2
3

# 构建代码

我们使用简单的案例,来学习命令行的调用,创建如下工程

.
├── package.json
└── src
    ├── index.js
    └── util.js
成功
1
2
3
4
5

index.js

import { getRandomNum } from "./util.js";
const r = getRandomNum(1, 10)
console.log(r)
成功
1
2
3

util.js

/**
 * 随机数
 * @param {*} min 最小值
 * @param {*} max 最大值
 * @returns min-max之间的随机整数
 */
export const getRandomNum = (min, max) => {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

/**
 * 深拷贝
 * @param obj 需要深拷贝的对象
 * @returns 深拷贝对象
 */
export const deepClone = (obj) => {
  if(typeof obj !== 'object' || obj === null) {
    return obj
  }
  const result = Array.isArray(obj) ? [] : {};
  for(let key in obj) {
    if(obj.hasOwnProperty(key)) {
      result[key] = deepClone(obj[key])
    }
  }
  return result
}
export default {getRandomNum,deepClone}
成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

查看命令行帮助

npx rollup -h
成功
1

rollup基本命令行

npx rollup src/index.js --file dist/bundle.js
成功
1

可以看到打印结果基本和源码相差不大,而且,自动做了摇树优化,也就是把没有用到的代码自动的删除了

/**
 * 随机数
 * @param {*} min 最小值
 * @param {*} max 最大值
 * @returns min-max之间的随机整数
 */
const getRandomNum = (min, max) => {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
};

const r = getRandomNum(1, 10);
console.log(r);
成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14

而且,我们还能选择编译的格式

对于浏览器:

# 编译为包含自执行函数('iife')的 <script>。
npx rollup src/index.js --file dist/bundle.js --format iife
成功
1
2

对于 Node.js:

# 编译为一个 CommonJS 模块 ('cjs')
npx rollup src/index.js --file dist/bundle.js --format cjs
成功
1
2

对于浏览器和 Node.js:

# UMD
npx rollup src/index.js --file dist/bundle.js --format umd
成功
1
2

# 常用选项总结

  • -i, --input <entry>:指定输入文件。
  • -o, --output <output>:指定输出文件。
  • -f, --format <format>:指定输出格式(esm, cjs, iife, umd 等)。
  • -m, --sourcemap:生成 Source Map。
  • -c, --config:使用配置文件。
  • -w, --watch:开启文件变动监听模式。
  • --plugin <plugin>:使用指定插件。