写了一个npm包,father打包,担心其中的css会影响到业务方,怎么快速给类名添加统一前缀
像这么做:https://github.com/cnpm/cnpmweb/pull/21#issuecomment-1682624787
你可以使用自动化工具来给CSS类名添加统一的前缀,以避免类名冲突和提高代码的可维护性。以下是一种可能的方法:
prefix-css-classes.js
,并在其中添加以下代码:const fs = require('fs');const path = require('path');const prefix = 'your-prefix-'; // 替换成你自己的前缀const filePath = 'path/to/your/css/file.css'; // 替换成你的CSS文件路径function addPrefixToClassNames(cssContent) { const classNames = cssContent.match(/[A-Za-z0-9-_]+/g); if (classNames) { const prefixedClassNames = classNames.map(className => { return prefix + className; }); const prefixedCssContent = cssContent.replace(/([A-Za-z0-9-_]+)/g, (match, p1) => { return prefixedClassNames.find(className => className.includes(p1)) || match; }); return prefixedCssContent; } return cssContent;}fs.readFile(path.resolve(process.cwd(), filePath), 'utf8', (err, data) => { if (err) { console.error('Error reading CSS file:', err); return; } const cssContent = data; const prefixedCssContent = addPrefixToClassNames(cssContent); fs.writeFile(path.resolve(process.cwd(), filePath), prefixedCssContent, 'utf8', err => { if (err) { console.error('Error writing prefixed CSS file:', err); } else { console.log('CSS classes prefixed successfully!'); } });});
npx webpack --config webpack.config.js
其中 webpack.config.js
是一个自定义的 webpack 配置文件,可以包含以下内容:
const path = require('path');const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');const TerserPlugin = require('terser-webpack-plugin');module.exports = { mode: 'production', entry: './src/index.js', // 替换成你的入口文件 output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, module: { rules: [ { test: /\.css$/i, use: [ 'style-loader', { loader: 'css-loader', options: { minimize: true } }, // 启用 CSS 压缩 ], }, ], }, plugins: [ new CssMinimizerPlugin(), // 用于 CSS 压缩的插件 ], optimization: { minimize: true, // 启用代码压缩和优化功能 minimizer: [new TerserPlugin()], // 使用 TerserPlugin 进行 JavaScript 的压缩和优化 },};
问题内容: 有没有办法将javascript文件中的字符串中的css添加到使用javascript的文档的开头? 假设我们有一个网页,其中包含一个灯箱脚本,该脚本需要一个css文件才能运行。 现在,添加此css文件将使css文件下载,即使对于未启用js的用户也是如此。 我知道我可以使用脚本动态加载css文件,但这也意味着将有2个http请求,并且在文件中几乎没有css的情况下,我发现这种效率低下。
问题内容: 我有一些代码: 我正在尝试通过使用JSON来应用这样的行(如jQuery文档中所示)或完全删除供应商前缀版本来改善此类行。 更改元素上的CSS属性时,jQuery的方法是否自动应用任何必需的供应商前缀? 问题答案: 正如@zeroflagL所写,自jQuery1.8.0起确实添加了浏览器特定的前缀。 在早期版本中,jQuery不会自动完成此操作。您将必须自己完成操作,也可以使用jQue
将之前下载好的nutz,druid,mysql的jar包,放入WebContent/WEB-INF/lib目录下 手册关联(选修) Nutz 包结构
问题内容: 现在,我正在通过jquery加载iframe: 我有一个自定义样式表,希望将其应用于该页面。iframe中的页面不在同一域中,这就是为什么它很棘手的原因。我找到了允许您添加单个标签但不能添加整个样式表的解决方案。 编辑: 有问题的页面通过Mobile Safari 加载,因此跨域策略不适用。 问题答案: 基于解决方案您已经找到了如何将CSS应用于iframe?: 或更多jqueryis
我尝试添加外部css,但不是work属性, 我正在使用prestashop版本1.7。4.3 在install()函数中,我调用钩子 在钩子里面,我注册了css和js文件 在hookBackOfficeHeader()中,我没有任何问题,但在hookDisplayHeader()中,我不想注册字体。 我尝试使用registerStylesheet()来添加CSS(),但根本不起作用。 为什么这两种
在CodeIgniter中添加JavaScript和CSS(层叠样式表)文件非常简单。 你必须在根目录中创建JS和CSS文件夹,并复制JS文件夹中的所有.js文件和CSS文件夹中的.css文件,如图所示。 例如,假设您已经创建了一个JavaScript文件sample.js和一个CSS文件style.css 。 现在,要将这些文件添加到视图中,请在控制器中加载URL帮助程序,如下所示。 $this