fix: Compile ts, css, scss, sass, less, styl files
- add support for multiple file types
This commit is contained in:
parent
a0a8f5cb42
commit
4172e1ff97
2 changed files with 28 additions and 26 deletions
|
|
@ -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
|
||||
})
|
||||
]
|
||||
|
||||
|
|
|
|||
19
esbuild/sass_options.js
Normal file
19
esbuild/sass_options.js
Normal file
|
|
@ -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
|
||||
};
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Reference in a new issue