UNPKG

bruce-cli

Version:

A JS/React App automation build scaffolding with zero-configuration and out-of-the-box

1 lines 3.43 kB
var x=this&&this.__awaiter||function(e,t,o,s){return new(o||(o=Promise))((function(i,n){function r(e){try{c(s.next(e))}catch(e){n(e)}}function l(e){try{c(s.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(r,l)}c((s=s.apply(e,t||[])).next())}))};import{watch as w}from"node:fs";import{basename as _,dirname as o}from"node:path";import{fileURLToPath as n}from"node:url";import $ from"@tailwindcss/vite";import F from"@vitejs/plugin-basic-ssl";import S from"@vitejs/plugin-react";import{AbsPath as E,IsEmptyObject as J}from"@yangzw/bruce-us/dist/node.js";import P from"open";import R from"postcss-preset-env";import U from"stylelint-formatter-pretty";import{createServer as V}from"vite";import k from"vite-plugin-eslint2";import A from"vite-plugin-html-config";import{viteStaticCopy as H}from"vite-plugin-static-copy";import I from"vite-plugin-stylelint";import{JudgeFile as L}from"../utils/index.js";import W from"./parse-config.js";export default function B(e){return x(this,void 0,void 0,(function*(){const t=o(n(import.meta.url)),{alias:s,browsers:i,copyFiles:r,eslintIgnores:l,eslintRules:c,linkAssets:p,openPages:m,proxy:a,proxyHost:f,publicPath:d,scriptAssets:u,style:v,stylelintIgnores:y,stylelintRules:g}=yield W(),{port:h,useCsslint:j,useHttps:b,useJslint:N,useOpener:O}=e,C=yield V({base:"function"==typeof d?d("dev"):d,configFile:!1,css:{postcss:{plugins:[R({browsers:i})]},preprocessorOptions:{scss:{api:"modern"}}},define:{RUN_ENV:JSON.stringify("dev"),"process.env.NODE_ENV":JSON.stringify("development"),"process.env.RUN_ENV":JSON.stringify("dev")},mode:"development",plugins:[b?F():null,N?k({cacheLocation:E("node_modules/.cache/eslint-vite-plugin/.eslintcache"),exclude:["node_modules",...l].map((e=>E(e))),formatter:E("../../node_modules/eslint-formatter-pretty/index.js",t),overrideConfig:{rules:c},overrideConfigFile:E("../../node_modules/@yangzw/bruce-std/dist/eslint.config.js",t)}):null,S(),A({favicon:"assets/img/favicon.ico",links:"function"==typeof p?p("dev"):p,scripts:[..."function"==typeof u?u("dev"):u,{src:`./${_(L("src"))}`,type:"module"}]}),H({targets:("function"==typeof r?r("dev"):r).filter((e=>e.from.startsWith("src"))).map((e=>{var t;return{dest:e.to,src:1===(null!==(t=e.from.split("/").pop())&&void 0!==t?t:"").split(".").length?e.from.replace(/^(src)?\/?/,"").replace(/\/$/,"").concat("/*"):e.from.replace(/^(src)?\/?/,"")}}))}),j?I(Object.assign({cacheLocation:E("node_modules/.cache/stylelint-vite-plugin/.stylelintcache"),configFile:E("../../node_modules/@yangzw/bruce-std/dist/stylelint.config.js",t),customSyntax:`postcss-${v}`,exclude:["node_modules",...y].map((e=>E(e))),formatter:U},J(g)?{}:{config:{rules:g}})):null,$()].filter(Boolean),resolve:{alias:Object.assign({"@":E("src")},s),mainFields:["module","jsnext","jsnext:main","browser","main"]},root:E("./src"),server:{host:f||!0,port:h,proxy:a}});yield C.listen(),C.printUrls();const z=[...new Set(m.length?m:[""])];if(O){const{host:e,port:t}=C.config.server;yield z.reduce(((o,s)=>x(this,void 0,void 0,(function*(){const i=/^https:?/.test(s)?s:`${b?"https":"http"}://${!0===e?"localhost":e}:${t}${s.startsWith("/")?s:`/${s}`}`;yield o,yield P(i,{app:{name:"chrome"}})}))),Promise.resolve())}const B=L("","configFile"),D=_(B);w(B,{persistent:!0},((e,t)=>x(this,void 0,void 0,(function*(){"change"===e&&t===D&&(yield C.close(),yield C.restart())}))))}))}