parcel 命令

1. 安装

1.1 全局安装

bash
npm install -g parcel-bundler

1.2 本地安装(推荐)

bash
npm install --save-dev parcel-bundler

2. 基本使用

2.1 启动开发服务器

bash
# 使用本地安装的 parcel
npx parcel index.html

# 使用全局安装的 parcel
parcel index.html

2.2 构建生产版本

bash
npx parcel build index.html

3. 常用命令

3.1 开发服务器命令

bash
# 启动开发服务器,默认端口 1234
parcel <入口文件>

# 指定端口
parcel <入口文件> --port <端口号>

# 启用 HTTPS
parcel <入口文件> --https

# 禁用自动打开浏览器
parcel <入口文件> --no-open

3.2 构建命令

bash
# 生产构建
parcel build <入口文件>

# 指定输出目录
parcel build <入口文件> --out-dir <目录>

# 指定公共 URL 路径
parcel build <入口文件> --public-url <路径>

# 禁用最小化
parcel build <入口文件> --no-minify

# 禁用树摇
parcel build <入口文件> --no-scope-hoist

3.3 其他命令

bash
# 清除缓存
parcel clean

# 检查版本
parcel --version

# 查看帮助
parcel --help

4. 配置选项

4.1 package.json 配置

json
{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "dev": "parcel index.html",
    "build": "parcel build index.html"
  },
  "parcel": {
    "targets": {
      "main": {
        "source": "src/index.js",
        "distDir": "dist",
        "publicUrl": "/"
      }
    }
  }
}

4.2 .parcelrc 配置

json
{
  "extends": "@parcel/config-default",
  "transformers": {
    "*.{js,jsx}": ["@parcel/transformer-babel"]
  },
  "bundlers": {
    "*.{js,jsx}": ["@parcel/bundler-default"]
  }
}

5. 支持的文件类型

Parcel 支持多种文件类型的打包,包括但不限于:

  • JavaScript (.js, .mjs, .jsx)
  • TypeScript (.ts, .tsx)
  • CSS (.css, .scss, .sass, .less)
  • HTML (.html)
  • Images (.png, .jpg, .gif, .svg, .webp)
  • Fonts (.woff, .woff2, .ttf, .eot)
  • JSON (.json)

6. 高级功能

6.1 代码分割

Parcel 自动支持动态 import() 语法进行代码分割:

javascript
// 动态导入模块
import('./module').then(module => {
  // 使用模块
});

6.2 热模块替换 (HMR)

Parcel 默认启用热模块替换,无需额外配置。

6.3 环境变量

在代码中使用 process.env.NODE_ENV 来区分开发和生产环境:

javascript
if (process.env.NODE_ENV === 'production') {
  // 生产环境代码
} else {
  // 开发环境代码
}

6.4 插件系统

Parcel 支持通过插件扩展功能:

bash
npm install --save-dev @parcel/transformer-typescript-tsc

7. 常见问题

7.1 端口被占用

bash
# 指定不同的端口
parcel index.html --port 3000

7.2 缓存问题

bash
# 清除缓存并重新构建
parcel build index.html --no-cache

7.3 与其他工具集成

  • Babel: 自动使用项目中的 .babelrc 配置
  • TypeScript: 自动使用项目中的 tsconfig.json 配置
  • ESLint: 需要单独配置,Parcel 不直接集成

8. 示例项目结构

text
my-project/
├── src/
│   ├── index.js
│   ├── styles.css
│   └── components/
│       └── Button.js
├── index.html
├── package.json
└── .parcelrc

9. 参考链接

最后更新:2026-02-07