import * as fs from 'fs-extra'; import { Compiler } from 'webpack'; import { PackageMap, Package } from '../interface'; export default class SeedJsonWebpackNewPlugin { options: any; compilerOutputFileSystem: typeof fs | null; static checker: (pkg: Package, tryMatchExternal: boolean) => Promise; static PRESERVE_FILE_NAME: string[]; constructor(options: any); /** * @description 查询依赖是否已经发过cdn, 缓存已经查过的结果 * @param {JSON} dependencies * @return {Object} result * @return {JSON} result.seed * @return {String[]} result.unpublished */ static query(dependencies: PackageMap, tryMatchExternal: boolean): Promise; apply(compiler: Compiler): void; /** * @description 删除requires为空的声明 * @param {Object} modules */ private deleteModuleIfRequireNothing; /** * ## Difference between userRequest and rawRequest ## * - rawRequest -> 指代的是代码中直接引用的地址 e.g. ./src/index * - userRequest -> 指代的是代码中直接引用的地址对应的绝对地址 e.g. User/xxx/xxx/node_modules/xxx/src/index */ /** * @description 获取所有引用依赖 * @param {NormalModule} module */ private getAllDeps; /** * * @param {String} depName 依赖名称 */ private isRax; /** * * @param {String} depName 依赖名称 * @param {String} fileName 依赖文件名 * @param {JSON} modules seed中声明的模块们 * @param {Array} unpublished 未发布依赖 */ private getRequireFromModules; private getCompilerOutputFileSystem; }