vite自定义环境打包启动服务

vite文件配置


let projectName = process.env.COMPANY_NAME;

const transformIndexHtml = (code: any) => {
	//main.ts入口文件由启动命令行带的COMPANY_NAME决定
	return code.replace(/__INDEX__/, `/src/${projectName}.ts`);
};

export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
	const env = loadEnv(mode, process.cwd());
	const viteEnv = wrapperEnv(env);

	return {
		// base: "/",
		// alias config
		root: __dirname,
		resolve: {
			alias: {
				"@": resolve(__dirname, "./src"),
				"vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js"
			}
		},
		// global css
		css: {
			preprocessorOptions: {
				scss: {
					additionalData: `@import "@/styles/var.scss";`
				}
			}
		},
		// plugins
		plugins: [
			{
				name: "demo-transform",
				enforce: "pre",
				// vite build is production will not invoke `transformIndexHtml`
				transform(code, id) {
					if (id.endsWith(".html")) {
						return { code: transformIndexHtml(code), map: null };
					}
				},
				transformIndexHtml
			}
		],
		define: {
			"process.env.NODE_ENV": `'${process.env.NODE_ENV}'`
		},
		optimizeDeps: {
			exclude: ["__INDEX__"] // 排除 __INDEX__
		},
		// build configure
	};
});

index.html文件 需要改动的地方

<script type="module" src="__INDEX__"></script>

命令行配置
通过COMPANY_NAME决定启动哪一个服务 比如npm run dev:cq
package.json文件配置 记得安装cross-env插件

	"dev": "vite",
	"dev:hn": "cross-env COMPANY_NAME=h5 vite",
	"serve": "vite",
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值