API

在 `@parcel/types` 中指定的剩余类型

最重要的数据类型列在相关插件类型的页面上。

AST parcel/packages/core/types/index.js:18

特定于插件的 ASTany

类型
type AST = _AST;
被引用
BaseAssetBundleResultMutableAssetTransformerTransformerResult

ConfigResult parcel/packages/core/types/index.js:19

类型
type ConfigResult = _ConfigResult;
被引用
MultiThreadValidator

ConfigResultWithFilePath parcel/packages/core/types/index.js:21

特定于插件的配置结果,any

type ConfigResultWithFilePath<T> = {|
  contents: T,
  filePath: FilePath,
|}
被引用
配置

EnvMap parcel/packages/core/types/index.js:26

process.env

类型
type EnvMap = typeof process.env;
被引用
InitialParcelOptionsPluginOptions

JSONValue parcel/packages/core/types/index.js:28

类型
type JSONValue = null | void | boolean | number | string | Array<JSONValue> | JSONObject;

JSONObject parcel/packages/core/types/index.js:38

一个 JSON 对象(如“映射”)

type JSONObject = {
}
被引用
JSONValueMetaResolveResult

Semver parcel/packages/core/types/index.js:43

类型
type Semver = string;
被引用
ASTGeneratorPackageJSON

GlobMap parcel/packages/core/types/index.js:49

配置中指定的管道,映射到 T

type GlobMap<T> = {
}

RawParcelConfigPipeline parcel/packages/core/types/index.js:51

类型
type RawParcelConfigPipeline = Array<PackageName>;
被引用
RawParcelConfig

HMROptions parcel/packages/core/types/index.js:53

type HMROptions = {
  port?: number,
  host?: string,
}
被引用
InitialParcelOptionsPluginOptions

RawParcelConfig parcel/packages/core/types/index.js:56

`.parcelrc` 的格式

type RawParcelConfig = {|
  extends?: PackageName | FilePath | Array<PackageName | FilePath>,
  resolvers?: RawParcelConfigPipeline,
  transformers?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
  bundler?: PackageName,
  namers?: RawParcelConfigPipeline,
  runtimes?: RawParcelConfigPipeline,
  packagers?: {
    [Glob]: PackageName,
    ...
  },
  optimizers?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
  compressors?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
  reporters?: RawParcelConfigPipeline,
  validators?: {
    [Glob]: RawParcelConfigPipeline,
    ...
  },
|}
被引用
ResolvedParcelConfigFile

ResolvedParcelConfigFile parcel/packages/core/types/index.js:71

所有包名都已解析的 `.parcelrc`

type ResolvedParcelConfigFile = {|
  ...RawParcelConfig,
  +filePath: FilePath,
  +resolveFrom?: FilePath,
|}

Engines parcel/packages/core/types/index.js:78

对应于 pkg#engines

type Engines = {
  +browsers?: string | Array<string>,
  +electron?: SemverRange,
  +node?: SemverRange,
  +parcel?: SemverRange,
}
被引用
EnvironmentEnvironmentOptionsInitialParcelOptionsPackageJSONPackageTargetDescriptor

TargetSourceMapOptions parcel/packages/core/types/index.js:87

对应于 pkg#targets.*.sourceMap

type TargetSourceMapOptions = {|
  +sourceRoot?: string,
  +inline?: boolean,
  +inlineSources?: boolean,
|}
被引用
EnvironmentEnvironmentOptionsPackageTargetDescriptor

Target parcel/packages/core/types/index.js:96

解析后的 PackageTargetDescriptor 版本

interface Target {
  +distEntry: ?FilePath,

入口的输出文件名

  +distDir: FilePath,

输出文件夹

  +env: Environment,
  +name: string,
  +publicUrl: string,
  +loc: ?SourceLocation,

创建此 Target 的位置,例如 package.json#main

}
被引用
BundleBundleGraphBundleGroupCreateBundleOptsDependencyMutableBundleGraphPackageTargetDescriptor

EnvironmentContext parcel/packages/core/types/index.js:109

输出应该在哪个环境中运行(影响例如捆绑加载器)

类型
type EnvironmentContext = 'browser' | 'web-worker' | 'service-worker' | 'worklet' | 'node' | 'electron-main' | 'electron-renderer';
被引用
EnvironmentEnvironmentOptionsPackageTargetDescriptor

OutputFormat parcel/packages/core/types/index.js:119

捆绑输出的 JS 模块格式

类型
type OutputFormat = 'esmodule' | 'commonjs' | 'global';
被引用
EnvironmentEnvironmentOptionsInitialParcelOptionsPackageTargetDescriptor

PackageTargetDescriptor parcel/packages/core/types/index.js:126

pkg#targets.* 的格式
参见 EnvironmentTarget

type PackageTargetDescriptor = {|
  +context?: EnvironmentContext,
  +engines?: Engines,
  +includeNodeModules?: boolean | Array<PackageName> | {
    [PackageName]: boolean,
    ...
  },
  +outputFormat?: OutputFormat,
  +publicUrl?: string,
  +distDir?: FilePath,
  +sourceMap?: boolean | TargetSourceMapOptions,
  +isLibrary?: boolean,
  +optimize?: boolean,
  +scopeHoist?: boolean,
  +source?: FilePath | Array<FilePath>,
|}
被引用
PackageJSONTargetTargetDescriptor

TargetDescriptor parcel/packages/core/types/index.js:148

使用 JS API 时的目标格式。
(与 PackageTargetDescriptor 相同,但 distDir 是必需的。)

type TargetDescriptor = {|
  ...PackageTargetDescriptor,
  +distDir: FilePath,
  +distEntry?: FilePath,
|}
被引用
InitialParcelOptions

SourceType parcel/packages/core/types/index.js:154

类型
type SourceType = 'script' | 'module';
被引用
EnvironmentEnvironmentOptions

EnvironmentOptions parcel/packages/core/types/index.js:159

这在创建 Environment 时使用(参见该页面)。

type EnvironmentOptions = {|
  +context?: EnvironmentContext,
  +engines?: Engines,
  +includeNodeModules?: boolean | Array<PackageName> | {
    [PackageName]: boolean,
    ...
  },
  +outputFormat?: OutputFormat,
  +sourceType?: SourceType,
  +isLibrary?: boolean,
  +shouldOptimize?: boolean,
  +shouldScopeHoist?: boolean,
  +sourceMap?: ?TargetSourceMapOptions,
  +loc?: ?SourceLocation,
|}
被引用
DependencyOptionsMutableAssetRuntimeAssetTransformerResult

VersionMap parcel/packages/core/types/index.js:187

解析后的 browserslist,例如:


{
  edge: '76',
  firefox: '67',
  chrome: '63',
  safari: '11.1',
  opera: '50',
}
type VersionMap = {
}
被引用
Environment

EnvironmentFeature parcel/packages/core/types/index.js:192

类型
type EnvironmentFeature = 'esmodules' | 'dynamic-import' | 'worker-module' | 'service-worker-module' | 'import-meta-url' | 'arrow-functions';
被引用
Environment

Environment parcel/packages/core/types/index.js:203

定义输出捆绑包的环境

interface Environment {
  +id: string,
  +context: EnvironmentContext,
  +engines: Engines,
  +includeNodeModules: boolean | Array<PackageName> | {
    [PackageName]: boolean,
    ...
  },

是否包含所有/无包(true / false)、要包含的包名称数组或对象(如果未指定包,则包含)。

  +outputFormat: OutputFormat,
  +sourceType: SourceType,
  +isLibrary: boolean,

输出是否为库构建(例如,更少的加载器)。

  +shouldOptimize: boolean,

输出是否应被缩小。

  +shouldScopeHoist: boolean,

作用域提升是否启用。

  +sourceMap: ?TargetSourceMapOptions,
  +loc: ?SourceLocation,
  isBrowser(): boolean,

context 是否指定浏览器上下文。

  isNode(): boolean,

context 是否指定节点上下文。

  isElectron(): boolean,

context 是否指定电子上下文。

  isWorker(): boolean,

context 是否指定工作者上下文。

  isWorklet(): boolean,

context 是否指定工作线程上下文。

  isIsolated(): boolean,

context 是否指定隔离上下文(无法访问其他已加载的祖先捆绑包)。

  matchesEngines(minVersions: VersionMap, defaultValue?: boolean): boolean,
  supports(feature: EnvironmentFeature, defaultValue?: boolean): boolean,
}
被引用
BaseAssetBundleConfigCreateBundleOptsDependencyEnvironmentOptionsPackageTargetDescriptorTargetTransformerResult

PackageDependencies parcel/packages/core/types/index.js:245

pkg#dependenciespkg#devDependenciespkg#peerDependencies 的格式

type PackageDependencies = {|
|}
被引用
PackageJSON

PackageJSON parcel/packages/core/types/index.js:252

package.json 的格式

type PackageJSON = {
  name: PackageName,
  version: Semver,
  type?: 'module',
  main?: FilePath,
  module?: FilePath,
  types?: FilePath,
  browser?: FilePath | {
    [FilePath]: FilePath | boolean,
    ...
  },
  source?: FilePath | Array<FilePath>,
  alias?: {
    [PackageName | FilePath | Glob]: PackageName | FilePath | {|
      global: string
    |},
    ...
  },
  browserslist?: Array<string> | {
    [string]: Array<string>
  },
  engines?: Engines,
  targets?: {
    [string]: PackageTargetDescriptor,
    ...
  },
  dependencies?: PackageDependencies,
  devDependencies?: PackageDependencies,
  peerDependencies?: PackageDependencies,
  sideEffects?: boolean | FilePath | Array<FilePath>,
  bin?: string | {|
    [string]: FilePath
  |},
}
被引用
配置

LogLevel parcel/packages/core/types/index.js:279

类型
type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'verbose';
被引用
InitialParcelOptionsPluginOptions

BuildMode parcel/packages/core/types/index.js:280

类型
type BuildMode = 'development' | 'production' | string;
被引用
InitialParcelOptionsPluginOptions

DetailedReportOptions parcel/packages/core/types/index.js:281

type DetailedReportOptions = {|
  assetsPerBundle?: number,
|}
被引用
InitialParcelOptionsPluginOptions

InitialParcelOptions parcel/packages/core/types/index.js:285

type InitialParcelOptions = {|
  +entries?: FilePath | Array<FilePath>,
  +config?: DependencySpecifier,
  +defaultConfig?: DependencySpecifier,
  +env?: EnvMap,
  +targets?: ?(Array<string> | {
    +[string]: TargetDescriptor,
    ...
  }),
  +shouldDisableCache?: boolean,
  +cacheDir?: FilePath,
  +mode?: BuildMode,
  +hmrOptions?: ?HMROptions,
  +shouldContentHash?: boolean,
  +serveOptions?: InitialServerOptions | false,
  +shouldAutoInstall?: boolean,
  +logLevel?: LogLevel,
  +shouldProfile?: boolean,
  +shouldPatchConsole?: boolean,
  +shouldBuildLazily?: boolean,
  +shouldBundleIncrementally?: boolean,
  +inputFS?: FileSystem,
  +outputFS?: FileSystem,
  +cache?: Cache,
  +workerFarm?: WorkerFarm,
  +packageManager?: PackageManager,
  +detailedReport?: ?DetailedReportOptions,
  +defaultTargetOptions?: {|
    +shouldOptimize?: boolean,
    +shouldScopeHoist?: boolean,
    +sourceMaps?: boolean,
    +publicUrl?: string,
    +distDir?: FilePath,
    +engines?: Engines,
    +outputFormat?: OutputFormat,
    +isLibrary?: boolean,
  |},
  +additionalReporters?: Array<{|
    packageName: DependencySpecifier,
    resolveFrom: FilePath,
  |}>,
|}

InitialServerOptions parcel/packages/core/types/index.js:332

type InitialServerOptions = {|
  +publicUrl?: string,
  +host?: string,
  +port: number,
  +https?: HTTPSOptions | boolean,
|}
被引用
InitialParcelOptions

PluginOptions parcel/packages/core/types/index.js:339

interface PluginOptions {
  +mode: BuildMode,
  +env: EnvMap,
  +hmrOptions: ?HMROptions,
  +serveOptions: ServerOptions | false,
  +shouldBuildLazily: boolean,
  +shouldAutoInstall: boolean,
  +logLevel: LogLevel,
  +projectRoot: FilePath,
  +cacheDir: FilePath,
  +inputFS: FileSystem,
  +outputFS: FileSystem,
  +packageManager: PackageManager,
  +instanceId: string,
  +detailedReport: ?DetailedReportOptions,
}
被引用
BundlerCompressorDedicatedThreadValidatorMultiThreadValidatorNamerOptimizerPackagerReporterResolverRuntimeTransformer

ServerOptions parcel/packages/core/types/index.js:356

type ServerOptions = {|
  +distDir: FilePath,
  +host?: string,
  +port: number,
  +https?: HTTPSOptions | boolean,
  +publicUrl?: string,
|}
被引用
PluginOptions

HTTPSOptions parcel/packages/core/types/index.js:364

type HTTPSOptions = {|
  +cert: FilePath,
  +key: FilePath,
|}
被引用
InitialServerOptionsServerOptions

SourceLocation parcel/packages/core/types/index.js:372

源位置是 1 为基准,这意味着行和列从 1 开始

type SourceLocation = {|
  +filePath: string,
  +start: {|
    +line: number,
    +column: number,
  |},

包含

  +end: {|
    +line: number,
    +column: number,
  |},

排除

|}
被引用
AssetSymbolsDependencyDependencyOptionsEnvironmentEnvironmentOptionsMutableAssetSymbolsMutableDependencySymbolsSymbolResolutionTargetTransformerResult

AssetSymbols parcel/packages/core/types/index.js:399

导出名称到相应资产的本地变量名称的映射。

interface AssetSymbols extends Iterable<[Symbol, {|
  local: Symbol,
  loc: ?SourceLocation,
  meta?: ?Meta,
|}]> {
  +isCleared: boolean,

资产的导出是未知的,而不是仅仅为空。这是默认状态。

  get(exportSymbol: Symbol): ?{|
    local: Symbol,
    loc: ?SourceLocation,
    meta?: ?Meta,
  |},
  hasExportSymbol(exportSymbol: Symbol): boolean,
  hasLocalSymbol(local: Symbol): boolean,
  exportSymbols(): Iterable<Symbol>,
}
被引用
BaseAssetMutableAssetSymbols

MutableAssetSymbols parcel/packages/core/types/index.js:418

interface MutableAssetSymbols extends AssetSymbols {
  ensure(): void,

初始化映射,将 isCleared 设置为 false。

  set(exportSymbol: Symbol, local: Symbol, loc: ?SourceLocation, meta?: ?Meta): void,
  delete(exportSymbol: Symbol): void,
}
被引用
MutableAsset

MutableDependencySymbols parcel/packages/core/types/index.js:435

isWeak 意味着:符号本身没有被父资产使用,只是被重新导出

interface MutableDependencySymbols extends Iterable<[Symbol, {|
  local: Symbol,
  loc: ?SourceLocation,
  isWeak: boolean,
  meta?: ?Meta,
|}]> {
  ensure(): void,

初始化映射,将 isCleared 设置为 false。

  +isCleared: boolean,

导入的符号是未知的,而不是仅仅为空。这是默认状态。

  get(exportSymbol: Symbol): ?{|
    local: Symbol,
    loc: ?SourceLocation,
    isWeak: boolean,
    meta?: ?Meta,
  |},
  hasExportSymbol(exportSymbol: Symbol): boolean,
  hasLocalSymbol(local: Symbol): boolean,
  exportSymbols(): Iterable<Symbol>,
  set(exportSymbol: Symbol, local: Symbol, loc: ?SourceLocation, isWeak: ?boolean): void,
  delete(exportSymbol: Symbol): void,
}
被引用
Dependency

DependencyPriority parcel/packages/core/types/index.js:469

类型
type DependencyPriority = 'sync' | 'parallel' | 'lazy';
被引用
DependencyDependencyOptionsResolveResult

SpecifierType parcel/packages/core/types/index.js:470

类型
type SpecifierType = 'commonjs' | 'esm' | 'url' | 'custom';
被引用
DependencyDependencyOptionsResolveOptions

File parcel/packages/core/types/index.js:631

type File = {|
  +filePath: FilePath,
  +hash?: string,
|}

DevDepOptions parcel/packages/core/types/index.js:790

type DevDepOptions = {|
  specifier: DependencySpecifier,
  resolveFrom: FilePath,
  range?: ?SemverRange,
  additionalInvalidations?: Array<{|
    specifier: DependencySpecifier,
    resolveFrom: FilePath,
    range?: ?SemverRange,
  |}>,

当此开发依赖项失效时,也会使这些依赖项失效。如果 Parcel 插件或其他父依赖项对该开发依赖项有自己的缓存,而不是 Node 的 require 缓存,这将很有用。

|}
被引用
配置

Stats parcel/packages/core/types/index.js:874

type Stats = {|
  time: number,
  size: number,
|}
被引用
AssetPackagedBundle

Blob parcel/packages/core/types/index.js:887

类型
type Blob = string | Buffer | Readable;
被引用
BundleResultGenerateOutputOptimizerPackagerTransformerResult

PackagedBundle parcel/packages/core/types/index.js:1330

interface PackagedBundle extends NamedBundle {
  +filePath: FilePath,

写入捆绑包的绝对文件路径,包括最终内容哈希(如果有)。

  +stats: Stats,

有关捆绑包的统计信息。

}
被引用
BuildSuccessEvent

GlobInvalidation parcel/packages/core/types/index.js:1518

type GlobInvalidation = {|
  glob: Glob,
|}
被引用
FileCreateInvalidation

FileInvalidation parcel/packages/core/types/index.js:1522

type FileInvalidation = {|
  filePath: FilePath,
|}
被引用
FileCreateInvalidation

FileAboveInvalidation parcel/packages/core/types/index.js:1526

type FileAboveInvalidation = {|
  fileName: string,
  aboveFilePath: FilePath,
|}
被引用
FileCreateInvalidation

RuntimeAssetPriority parcel/packages/core/types/index.js:1613

类型
type RuntimeAssetPriority = 'sync' | 'parallel';
被引用
RuntimeAsset

BundledProgressEvent parcel/packages/core/types/index.js:1826

type BundledProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'bundled',
  +bundleGraph: BundleGraph<NamedBundle>,
  +changedAssets: Map<string, Asset>,
|}
被引用
BuildProgressEvent

ErrorWithCode parcel/packages/core/types/index.js:1923

interface ErrorWithCode extends Error {
  +code?: string,
}

IDisposable parcel/packages/core/types/index.js:1927

interface IDisposable {
  dispose(): mixed,
}

AsyncSubscription parcel/packages/core/types/index.js:1931

type AsyncSubscription = {|
  unsubscribe(): Promise<mixed>,
|}