123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- const { createSchema, validate } = require('@vue/cli-shared-utils')
- const schema = createSchema(joi => joi.object({
- publicPath: joi.string().allow(''),
- outputDir: joi.string(),
- assetsDir: joi.string().allow(''),
- indexPath: joi.string(),
- filenameHashing: joi.boolean(),
- runtimeCompiler: joi.boolean(),
- transpileDependencies: joi.array(),
- productionSourceMap: joi.boolean(),
- parallel: joi.alternatives().try([
- joi.boolean(),
- joi.number().integer()
- ]),
- devServer: joi.object(),
- pages: joi.object().pattern(
- /\w+/,
- joi.alternatives().try([
- joi.string().required(),
- joi.array().items(joi.string().required()),
- joi.object().keys({
- entry: joi.alternatives().try([
- joi.string().required(),
- joi.array().items(joi.string().required())
- ]).required()
- }).unknown(true)
- ])
- ),
- crossorigin: joi.string().valid(['', 'anonymous', 'use-credentials']),
- integrity: joi.boolean(),
-
- css: joi.object({
-
- modules: joi.boolean(),
- requireModuleExtension: joi.boolean(),
- extract: joi.alternatives().try(joi.boolean(), joi.object()),
- sourceMap: joi.boolean(),
- loaderOptions: joi.object({
- css: joi.object(),
- sass: joi.object(),
- scss: joi.object(),
- less: joi.object(),
- stylus: joi.object(),
- postcss: joi.object()
- })
- }),
-
- chainWebpack: joi.func(),
- configureWebpack: joi.alternatives().try(
- joi.object(),
- joi.func()
- ),
-
- lintOnSave: joi.any().valid([true, false, 'error', 'warning', 'default']),
- pwa: joi.object(),
-
- pluginOptions: joi.object()
- }))
- exports.validate = (options, cb) => {
- validate(options, schema, cb)
- }
- function hasMultipleCores () {
- try {
- return require('os').cpus().length > 1
- } catch (e) {
- return false
- }
- }
- exports.defaults = () => ({
-
- publicPath: '/',
-
- outputDir: 'dist',
-
- assetsDir: '',
-
- indexPath: 'index.html',
-
- filenameHashing: true,
-
- runtimeCompiler: false,
-
- transpileDependencies: [
-
- ],
-
- productionSourceMap: !process.env.VUE_CLI_TEST,
-
-
- parallel: hasMultipleCores(),
-
- pages: undefined,
-
-
- crossorigin: undefined,
-
- integrity: false,
- css: {
-
-
-
-
- },
-
- lintOnSave: 'default',
- devServer: {
-
- }
- })
|