electron-vite_18Less和Sass共用样式指定

项目中可以封装less公用样式和方法,比如自动以滚动条样式、单行省略号、多行省略号、display:none等;

关于additionalData的配置生效,请在main.js中引入一个别的样式或vue组件中使用“<style lang=“scss”><style>”
在这里插入图片描述

找到electron.vite.config.ts添加less配置

1.设置alias别名’@': resolve(‘src/renderer/src’)
2.指定包含别名的路径additionalData: @import "@/assets/style/global.less";,
3.在main.tsx文件引入一个less文件; import ‘@/assets/style/reset.less’;
备注:不手动引入的话additionalData的配置不会生效;
其它方式:如果是其它框架比方说main.js或main.ts或

export default defineConfig({
	main: {},
	preload:{},
	renderer: {
		css: {
	      preprocessorOptions: {
		        less: {
			          modifyVars: { // 更改主题: 用户覆盖一些基于Less的默认变量比方说一些组件库
			            'primary-color': '#52c41a',
			            'link-color': '#1DA57A',
			            'border-radius-base': '2px'
			          },
			          // 禁用less主动添加"UTF-8"声明, 否则会导致多less文件合并可能导致一些问题
			          charset: false,
			          /* 全局样式: 原理就是在每个文件都引入这个样式,不在需要手动引入
			          	真实路径:src/renderer/src/assets/style/global.less
			          */
			          additionalData: `@import "@/assets/style/global.less";`,
			          // 允许 Less 中执行 JavaScript 表达式
			          javascriptEnabled: true,
		        }
	      },
    	},
    	 resolve: {
	      alias: {
	        '@renderer': resolve('src/renderer/src'),
	        '@': resolve('src/renderer/src')
	      }
	    },
	}
})
### 解决 `__dirname` 在 Electron Vite 项目中的定义问题 当在基于 Electron 或者使用 Vite 构建的应用程序中遇到 `'__dirname is not defined'` 错误时,这通常发生在尝试将 CommonJS 特定变量用于 ES 模块环境中。此错误表明当前模块环境不识别这些特定于 Node.js 的全局变量。 对于这个问题,在不同场景下有多种解决方案: #### 修改 ESLint 配置以适应 Node.js 环境 为了让 ESLint 正确解析并理解代码是在 Node.js 下执行而非浏览器端,可以在 `.eslintrc.json` 文件内调整环境设置来声明这是针对 Node.js 的开发环境[^3]。 ```json { "env": { "node": true, "es2020": true } } ``` 通过上述配置更改,ESLint 将能够正确处理像 `__dirname` 这样的 Node.js 全局对象而不会抛出警告或错误信息。 #### 使用 import.meta.url 替代 __dirname 如果希望保持项目的现代 JavaScript (ESM) 结构不变,则可以考虑采用更兼容的方式获取文件路径。例如,利用 URL API 来代替传统的 `path.join(__dirname, ...)` 方法: ```javascript import { fileURLToPath } from 'url'; import path from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // 继续正常使用 __dirname 变量... console.log(path.join(__dirname, './assets')); ``` 这种方法不仅解决了 ESM 中无法直接访问 `__dirname` 的问题,还确保了跨平台的一致性更好的可移植性[^1]。 #### 调整 Vite 配置支持 CJS 模块特性 Vite 默认是以 ESM 方式加载资源的,但如果确实需要保留某些部分为 CommonJS 形式的模块化结构(比如为了向后兼容),可以通过修改 vite.config.ts 来允许混合模式的支持。具体来说就是启用 `defineConfig()` 函数内的 `build.lib.entryFormats` 参数,并加入 commonjs 类型[^2]: ```typescript import { defineConfig } from 'vite' export default defineConfig({ build: { lib: { entry: 'src/main.js', formats: ['es', 'umd', 'cjs'] // 同时编译成三种格式 }, }, }) ``` 这样做之后,即使在打包过程中也会生成相应的 .cjs 文件供那些依赖传统 require() 导入方式的地方调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值