diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index 75eaebdaa2..5bb0b6f4bc 100644 --- a/packages/@vue/cli-service/package.json +++ b/packages/@vue/cli-service/package.json @@ -3,6 +3,7 @@ "version": "3.3.0", "description": "local service for vue-cli projects", "main": "lib/Service.js", + "typings": "types/index.d.ts", "bin": { "vue-cli-service": "bin/vue-cli-service.js" }, diff --git a/packages/@vue/cli-service/types/ProjectOptions.d.ts b/packages/@vue/cli-service/types/ProjectOptions.d.ts new file mode 100644 index 0000000000..4f31a41e5f --- /dev/null +++ b/packages/@vue/cli-service/types/ProjectOptions.d.ts @@ -0,0 +1,58 @@ +import ChainableWebpackConfig from 'webpack-chain' +import { WebpackOptions } from 'webpack/declarations/WebpackOptions' + +type PageEntry = string; + +interface PageConfig { + entry: PageEntry; + [key: string]: any; +} + +interface LoaderOptions { + css?: object; + sass?: object; + less?: object; + stylus?: object; + postcss?: object; +} + +// mini-css-extract-plugin options +interface ExtractOptions { + filename?: string; + chunkFilename?: string; +} + +interface CSSOptions { + modules?: boolean; + extract?: boolean | ExtractOptions; + sourceMap?: boolean; + loaderOptions?: LoaderOptions; +} + +export interface ProjectOptions { + publicPath?: string; + outputDir?: string; + assetsDir?: string; + indexPath?: string; + filenameHashing?: boolean; + runtimeCompiler?: boolean; + transpileDependencies?: Array; + productionSourceMap?: boolean; + parallel?: boolean; + devServer?: object; + pages?: { + [key: string]: PageEntry | PageConfig; + }; + crossorigin?: '' | 'anonymous' | 'use-credentials'; + integrity?: boolean; + + css?: CSSOptions; + + chainWebpack?: (config: ChainableWebpackConfig) => void; + configureWebpack?: WebpackOptions | ((config: WebpackOptions) => (WebpackOptions | void)); + + lintOnSave?: boolean | 'error'; + pwa?: object; + + pluginOptions?: object; +} diff --git a/packages/@vue/cli-service/types/index.d.ts b/packages/@vue/cli-service/types/index.d.ts new file mode 100644 index 0000000000..4defa80d9b --- /dev/null +++ b/packages/@vue/cli-service/types/index.d.ts @@ -0,0 +1 @@ +export { ProjectOptions } from './ProjectOptions'