Files
speckle-server/packages/frontend/esbuildPlugin.js
T
Gergő Jedlicska 638969cd01 gergo/yarn (#753)
* 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>
2022-05-19 19:53:07 +02:00

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