@zohodesk/client_build_tool
Version:
A CLI tool to build web applications and client libraries
384 lines (380 loc) • 7.67 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _os = require("os");
// NOTE: Don't use 'config_file' as cli option it was reserved
var _default = {
context: {
value: 'app',
cli: 'context'
},
library: {
ignorePatterns: []
},
devtool: 'source-map',
statsLogConfig: null,
stats: {
enable: {
value: false,
cli: 'enable_stats',
type: 'boolean'
},
fileName: null,
options: null,
excludeKeys: null
},
enableFileNameHashing: {
value: false,
cli: 'enable_hash'
},
bundleAnalyze: {
value: false,
cli: 'bundle_analyze'
},
enableMockReplace: {
value: false,
cli: 'enable_mock_replace'
},
noPublicPath: {
value: false,
cli: 'no_public_path'
},
output: {
value: 'build',
cli: 'output'
},
mode: {
value: null,
cli: 'mode'
},
printProgress: {
value: false,
cli: 'print_progress'
},
server: {
k8s: {
value: false,
cli: 'k8s'
},
httpsCerts: {
value: '',
cli: 'https_certs'
},
host: {
value: (0, _os.hostname)(),
cli: 'host'
},
port: {
value: 9090,
cli: 'port'
},
domain: {
value: null,
cli: 'domain'
},
disableContextURL: {
value: false,
cli: 'disable_context'
}
},
mockServer: {
enable: {
value: false,
cli: 'enable_mock'
},
separateSeverPort: {
value: null,
cli: 'mock_port'
},
disableNodemon: {
value: false,
cli: 'disable_nodemon'
},
mockEntryFile: 'mockapi/index.js',
mockPrefix: {
value: '/api',
cli: 'mock_prefix'
}
},
css: {
classNameOptions: {
customizations: [{
enable: true,
blob: '[local]',
patterns: ['*.plain.css']
}, {
enable: true,
blob: '[prefix]-[filename]-[local]',
patterns: []
}],
classNamePrefix: 'zd'
},
// NOTE: Suggestions
// Name Suggestions `customizations` this will be easier then `plugin` to understand for developers
plugins: {
rtlSplit: {
enableRTLSplit: {
value: false,
cli: 'enable_rtl_split'
},
templateLabel: '{{--dir}}',
disableMinifySelector: false,
dirVarName: 'document.dir'
},
selectorWeight: {
enable: false,
patterns: [],
configFile: null,
defaultSelector: '',
customFileDetails: '',
excludeStrings: []
},
// postcss plugins start
// NOTE: These we have putted names of post-css-plugins in array
// packages/client_build_tool/src/shared/bundler/webpack/custom_postcss_loaders/PostCssOptionConstants.js
valueReplacer: {
enable: false,
patterns: [],
config: []
},
selectorReplace: {
enable: false,
patterns: [],
before: [],
after: []
},
hoverActive: {
enable: false,
patterns: [],
hover: '(hover: hover)',
active: '(hover: none)'
},
cssVariableReplacement: {
enable: false,
patterns: [],
configFile: null
},
rtl: {
enable: false,
patterns: []
} // postcss - plugins end
},
customPlugins: ['...']
},
i18nChunkSplit: {
chunkSplitEnable: {
value: false,
cli: 'i18n_split'
},
disableDefault: false,
templateLabel: '{{--user-locale}}',
localeVarName: 'document.documentElement.lang',
jsonpFunc: 'console.log',
jsResource: null,
propertiesFolder: null
},
publicFolders: {
dev: ['...'],
prod: ['...']
},
app: {
AdditionalEntry: {
enable: false,
entryFile: 'src/widget.js',
entryPointName: 'widget'
},
entryFile: {
value: 'src/index.js',
cli: 'entry'
}
},
resolve: {
preferLocalFirst: false,
defaultAlias: true,
moduleResolvePath: {
value: '',
cli: 'module_resolve_path'
},
alias: null
},
htmlTemplate: {
generateHtml: true,
crossorigin: {
value: false,
cli: 'enable_crossorigin'
},
templateFile: {
value: 'src/index.html',
cli: 'initial_html'
},
minify: null,
inject: true
},
efc: {
hasEFC: {
value: false,
cli: 'enable_efc',
type: 'boolean'
},
entryPointName: 'efc',
entryFile: {
value: 'src/efc.js',
cli: 'efc_entry'
},
version: {
value: 'v1',
cli: 'efc_version'
},
createSDkFile: {
value: false,
cli: 'create_efc_sdk'
},
templateFilePath: 'efcTemplate.js',
outputFile: {
value: 'efc-sdk-[version].js',
cli: 'efc_output'
},
resourceCleanup: {
value: false,
cli: 'enable_efc_resource_cleanup',
type: 'boolean'
}
},
createSeparateSMap: {
value: false,
cli: 'enable_smap'
},
babelCustomizations: {
browserList: null,
// NOTE: need to consider
// presets: [],
plugins: [],
removeAttribute: {
enable: false,
options: {
attributeNames: ['data-testid']
}
},
removePropTypes: {
enable: false,
options: {
mode: 'remove',
removeImport: true
}
},
devConsoleExclude: {
enable: {
value: false,
cli: 'console_exclude'
},
options: {
exclude: ['error']
}
}
},
webpackPlugins: [],
vendorPatterns: [],
customChunksBaseConfig: null,
customChunks: [{
name: 'styles',
patterns: ['*.css']
}],
cdnMapping: {
isCdnEnabled: {
value: false,
cli: 'enable_cdn'
},
variableName: '',
cssTemplate: '',
jsTemplate: '',
i18nTemplate: ''
},
manifestJson: {
enable: false,
i18nManifestJson: false,
licenseManifest: false
},
changeRuntimeChunkChar: '~',
serviceWorker: {
enable: false,
templateFilePath: 'sw.js',
outputFilePath: '/v1.js',
replaceText: '//<!--AssetsFromBuild -->'
},
customLoaders: [],
resourceHints: {
allowPrefetchingMultipleChunks: false
},
devModeContentHashAllowedTypes: null,
nameTemplateCustomization: null,
devLikeHash: {
value: false,
cli: 'dev_like_hash'
},
disableReactDevWarning: {
value: false,
cli: 'disable_react_dev_warning'
},
preProcess: {
enable: {
value: false,
cli: 'enable_pre_process'
},
// This option is for tell the CBT to which is preprocessor js file path
runner: {
value: '',
cli: 'preprocessor'
},
// usually preprocessor run in nodemon for, start and docs , preprocessor
stopNodemon: {
value: false,
cli: 'stop_nodemon'
}
},
fileHashMappingToVariable: null,
customAttributes: {
enable: false,
attributes: null,
jsAttributes: null,
cssAttributes: null,
i18nAttributes: null
},
externals: null,
typeScript: {
enable: {
value: false,
cli: 'type_script_enable'
}
},
optimization: {
jsExcludePath: '',
cssExcludePath: ''
},
customScriptLoadingStrategey: {
enable: false,
options: null
},
murphyBootstrapHtml: {
enable: false,
chunkName: '',
filePath: ''
},
enableSubResourceIntegrity: {
value: false,
cli: 'enable_sub_resource_integrity'
},
chunkGraph: {
enable: {
value: false,
cli: 'chunk_graph_enable'
},
fileName: ''
},
cssOrderControler: {
enable: false,
className: 'customCss'
}
};
exports.default = _default;