ts-to-html
Version:
TS and SASS compiler for a HTML with live preview
61 lines (60 loc) • 1.8 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Modes = void 0;
const node_fs_1 = require("node:fs");
const node_path_1 = require("node:path");
const env_1 = __importDefault(require("../utils/env"));
// Config env
(0, env_1.default)();
// Get mode
var Modes;
(function (Modes) {
Modes["development"] = "development";
Modes["production"] = "production";
Modes["none"] = "none";
})(Modes = exports.Modes || (exports.Modes = {}));
;
const mode = (() => {
const appEnv = process.env.APP_ENV || Modes.development;
return Object.values(Modes).includes(appEnv)
? appEnv
: Modes.development;
})();
// resolve snippet
const resolve = (...paths) => (0, node_path_1.resolve)(process.cwd(), ...paths);
// entry
const tsFile = resolve("src/index.ts");
// config
const config = {
mode,
entry: (0, node_fs_1.existsSync)(tsFile) ? tsFile : resolve("src/index.js"),
resolve: {
extensions: [".ts", ".js"],
},
output: {
path: resolve("public"),
filename: "bundle.js",
},
module: {
rules: [
{
test: /(\.ts|\.js)$/,
exclude: /(node_modules|public)/i,
use: {
loader: 'ts-loader',
options: {
transpileOnly: true,
compilerOptions: {
target: "es6",
module: "es6",
},
},
},
}
]
},
};
exports.default = config;