vite配置引入了公共的scss文件,打包后,每个css文件都重复引入了global.scss文件中的内容,如何提取出一个公共的css文件?
css: {
preprocessorOptions: {
scss: {
additionalData: '@import "@/global.scss";',
javascriptEnabled: true
}
}
}
在 Vite 中,当你使用 preprocessorOptions
的 additionalData
来全局引入 SCSS 文件时,确实可能会导致每个组件或页面的 CSS 输出中都包含这些全局样式。为了避免这种情况,并提取出一个单独的公共 CSS 文件,你可以使用 Vite 的插件系统或构建配置来优化你的 CSS 输出。
不过,Vite 本身并没有直接提供像 Webpack 的 MiniCssExtractPlugin
那样的插件来直接提取公共 CSS。但是,你可以通过以下方法来尝试解决这个问题:
你可以创建一个单独的 CSS 文件(例如 main.scss
),并在其中 @import
所有的全局样式文件(包括 global.scss
)。然后,在 Vite 配置中,你可以将 main.scss
作为 CSS 的入口文件,而不是在 preprocessorOptions
中使用 additionalData
。
步骤:
创建一个 main.scss
文件,并在其中引入 global.scss
和其他需要的全局样式。
// main.scss
@import "@/global.scss";
// 其他全局样式
修改你的 Vite 配置,不再使用 additionalData
,而是将 main.scss
添加到你的入口文件中(如果是 Vue 项目,可以在 vite.config.js
中配置插件来自动引入)。
对于非 Vue 项目,你可能需要在 HTML 文件中手动引入 main.scss
生成的 CSS 文件。
@vitejs/plugin-vue
,它默认启用了 CSS 代码分割)。虽然 Vite 没有内置的插件来直接提取公共 CSS,但你可以查找是否有第三方插件实现了这一功能。例如,有些社区插件可能模仿了 Webpack 的 MiniCssExtractPlugin
的行为。
如果你需要更高级的自定义,你可以通过编写自己的 Rollup 插件来直接控制 CSS 的打包过程。这涉及到对 Rollup 和 Vite 插件系统的深入了解。
对于大多数情况,使用 CSS 入口文件(方法 1)应该是最简单和最直接的方法。这可以确保全局样式只被包含一次,并且可以在构建过程中被有效地管理和优化。如果你需要更复杂的 CSS 管理,考虑使用第三方插件或编写自定义 Rollup 插件。
项目是vite+ts,但是css module不知道怎么实现。 比如下面这种常规的css module写法,在vite中要怎么配置才能实现。 vite官网关于css module是404 https://vitejs.cn/config/shared-options.html#css-modules
npm install extract-text-webpack-plugin --save-dev 简单的方法 requires vue-loader@^12.0.0 and webpack@^2.0.0 // webpack.config.js var ExtractTextPlugin = require("extract-text-webpack-plugin") module.exp
将所有Vue组件中的所有已处理的CSS解压缩到单个CSS文件中示例配置: Webpack 2.x npm install extract-text-webpack-plugin@2.x --save-dev // webpack.config.js var ExtractTextPlugin = require("extract-text-webpack-plugin") module.exp
有没有一种方法可以在Google Drive中使用API获得标记为公共查看的文件,而不需要验证? 我知道“downloadURL”属性,但它是一个临时URL,没有引用它的持续时间。我想直接使用API来获取文件,我想我在某处读到有人暗指有可能调用未通过身份验证的API来检索公共文件。
问题内容: 我在HTML中有一些代码例如 如果我使用以下CSS代码进行样式设置: 问题是:如何防止和隔离mydiv div标签内的标签,使其免受公共标签样式的影响? 问题答案: CSS层叠和继承级别3介绍了速记属性和该关键字,这一起,让您方便地实现这一目标。 例如,如果作者在元素上指定,它将阻止所有继承并重置所有属性,就像级联的作者,用户或用户代理级别中没有规则一样。 这对于不希望继承外部页面样式
vite如何导入静态.js文件呢?因为我的项目是monorepo架构的,其中有一个common包被其他vue项目所公共引用,然后这个common包里需要动态加载一些.js、.json文件,如何才能在common包放入这些静态文件并直接导入?我试了函数中使用import可以动态导入一些.json文件,但是对于.js文件导入不了。 之前是分别放在引入common的主项目下的public下,然后使用ax