UNPKG

rerumaccusamus

Version:

The meta-framework suite designed from scratch for frontend-focused modern web development.

72 lines (55 loc) 2.24 kB
--- sidebar_label: packageMode --- # `output.packageMode` :::info 适用的工程方案 * 模块 ::: * 类型: `'universal-js' | 'universal-js-lite' | 'browser-js' | 'browser-js-lite' | 'node-js'` * 默认值: `'universal-js'` 通过该配置可以决定构建产物支持的语法以及模块化规范 不同类型构建产物的产出目录的名称如下: - `dist/js/modern` - `dist/js/node` - `dist/js/treeshaking` 以上目录名称的含义与在 `package.json` 中的使用方式有关,与具体的 **JS** 语法和模块化规范无关具体的使用方式如下: ``` json { "jsnext:source": "./src/index.js", "types": "dist/types/index.d.ts", "main": "dist/js/node/index.js", "module": "dist/js/treeshaking/index.js", "jsnext:modern": "./dist/js/modern/index.js", "exports": { ".": { "node": { "import": "./dist/js/modern/index.js", "require": "./dist/js/node/index.js" }, // 为何设置default?以防止出现不支持的环境,作为导出的 fallback。 "default": "./dist/js/treeshaking/index.js" } } } ``` 具体的 `packageMode` 值以及构建产物的内容如下: - `'universal-js'` (**Universal JS** 的默认选择,三份构建产物,支持 **Node.js**,对现代浏览器有优化- `node`: CommonJS + ES6(+) - `treeshaking`: ES Module + ES5 - `modern`: ES Module + ES6(+) - `'universal-js-lite'` (**Universal JS** 的优化选择,两份构建产物,对现代浏览器无优化- `node`: CommonJS + ES6(+) - `treeshaking`: ES Module + ES5 - `modern`: ES Module + ES5 - `'browser-js'` (纯前端代码的默认选择,两份构建产物- `node`: ES Module + ES6(+) - `treeshaking`: ES Module + ES5 - `modern`: ES Module + ES6(+) - `'browser-js-lite'` (纯前端代码的优化选择,单份构建产物,对现代浏览器无优化- `node`: ES Module + ES5 - `treeshaking`: ES Module +ES5 - `modern`: ES Module + ES5 - `'node-js'` (纯 **Node.js** 代码的默认选择,两份构建产物- `node`: CommonJS + ES6(+) - `treeshaking`: 无文件 - `modern`: ES Module + ES6(+)