From 4172e1ff97a2b771c6263a4f21fc06a83bd93597 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 20 Apr 2021 05:59:19 +0530 Subject: [PATCH] fix: Compile ts, css, scss, sass, less, styl files - add support for multiple file types --- esbuild/index.js | 35 +++++++++-------------------------- esbuild/sass_options.js | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 esbuild/sass_options.js diff --git a/esbuild/index.js b/esbuild/index.js index aacff1d6d9..742f3ca2cc 100644 --- a/esbuild/index.js +++ b/esbuild/index.js @@ -5,16 +5,11 @@ let html_plugin = require("./esbuild-plugin-html"); let vue = require("esbuild-vue"); let postCssPlugin = require("esbuild-plugin-postcss2").default; let ignore_assets = require("./ignore-assets"); -let { - app_list, - get_options_for_scss, - get_public_path, - run_serially -} = require("./utils"); +let sass_options = require("./sass_options"); +let { app_list, get_public_path, run_serially } = require("./utils"); const TOTAL_BUILD_TIME = "Total Build Time"; - (async function() { console.time(TOTAL_BUILD_TIME); await run_build_for_apps(app_list); @@ -27,14 +22,18 @@ function run_build_for_apps(apps) { function run_build_for_app(app) { let public_path = get_public_path(app); - let include_patterns = path.resolve(public_path, "**", "*.bundle.js"); + let include_patterns = path.resolve( + public_path, + "**", + "*.bundle.{js,ts,css,sass,scss,less,styl}" + ); let ignore_patterns = [ path.resolve(public_path, "node_modules"), path.resolve(public_path, "build") ]; return glob(include_patterns, { ignore: ignore_patterns }).then(files => { - console.log(`\nBuilding assets for ${app}...`); + // console.log(`\nBuilding assets for ${app}...`); return build_files({ files, outdir: path.resolve(public_path, "build"), @@ -62,23 +61,7 @@ function build_files({ files, outdir, outbase }) { vue(), postCssPlugin({ plugins: [require("autoprefixer")], - sassOptions: { - ...get_options_for_scss(), - importer: function(url) { - if (url.startsWith("~")) { - // strip ~ so that it can resolve from node_modules - url = url.slice(1); - } - if (url.endsWith(".css")) { - // strip .css from end of path - url = url.slice(0, -4); - } - // normal file, let it go - return { - file: url - }; - } - } + sassOptions: sass_options }) ] diff --git a/esbuild/sass_options.js b/esbuild/sass_options.js new file mode 100644 index 0000000000..a2d22c807d --- /dev/null +++ b/esbuild/sass_options.js @@ -0,0 +1,19 @@ +let { get_options_for_scss } = require("./utils"); + +module.exports = { + ...get_options_for_scss(), + importer: function(url) { + if (url.startsWith("~")) { + // strip ~ so that it can resolve from node_modules + url = url.slice(1); + } + if (url.endsWith(".css")) { + // strip .css from end of path + url = url.slice(0, -4); + } + // normal file, let it go + return { + file: url + }; + } +};