638969cd01
* yarn first go * fix frontend build cache loader * yarn workspaces built server Docker * build(yarn): add workspaces plugin config * chore(package defs): clean package*.json -s * chore(gitignore): ignore yarn error log * build(yarn): update yarn lock * build(preview-service webpack): add extra resolved path to preview service webpack config because of yarn package hoisting, there are no package level node_modules folder anymore. * build(docker): update dockerignore with yarn specific configs * build(docker): update Dockerfiles for yarn workspaces utilization * ci(circleci): update server test job to yarn * ci(circle): disable cache restore * ci(circleci): trying the node orb yarn-run * ci(circleci): yarn-run again * ci(circleci): disable node orb * ci(circleci): change base node image for tests * ci(circleci): add yarn cache * ci(circleci): remove node install step * ci(circleci): add server specific cache archives * ci(circleci): test build and publish * ci(circleci): change npm auth method to suit yarn * ci(circleci): trying new builder image * ci(circleci): another base image, maybe this works * ci(circleci): force a specific docker engine version * ci(circleci): add yarn version plugin and its changes * ci(circleci): cleanup and remove temp branch config * chore(package defs): moving from npm run to yarn * explicitly specifying webpack4 as a frontend dep * chore(package defs): replace npm with yarn everywhere * docs(root readme): update with some yarn specific docs * chore(root workspace): update dev scripts and package lock * ci(circleci): enable package publish step with yarn Co-authored-by: Fabians <fabis94@live.com>
37 lines
924 B
JavaScript
37 lines
924 B
JavaScript
/**
|
|
* Dev builds use esbuild instead of babel for improved speed
|
|
* @param {import('@vue/cli-service/lib/PluginAPI')} api
|
|
**/
|
|
function plugin(api) {
|
|
const isProdBuild = process.env.NODE_ENV === 'production'
|
|
const isDevBuild = !isProdBuild
|
|
|
|
if (!isDevBuild) return
|
|
|
|
api.chainWebpack((config) => {
|
|
const target = 'es2019'
|
|
const jsRule = config.module.rule('js').test(/\.m?jsx?$/)
|
|
|
|
// Delete babel related loaders
|
|
jsRule.uses.delete('thread-loader').delete('babel-loader')
|
|
|
|
// Add caching config
|
|
jsRule
|
|
.use('cache-loader')
|
|
.loader('cache-loader')
|
|
.options(
|
|
api.genCacheConfig('js-esbuild-loader', {
|
|
target,
|
|
esbuildLoaderVersion: require('esbuild-loader/package.json').version
|
|
})
|
|
)
|
|
|
|
// Add new esbuild loader
|
|
jsRule.use('esbuild-loader').loader('esbuild-loader').options({
|
|
target
|
|
})
|
|
})
|
|
}
|
|
|
|
module.exports = plugin
|