利用rollup打包vue组件库时 如何引入公共的variable.less文件 并且在生成的时候生成对应的less文件?
以下是文件目录
import vue from "rollup-plugin-vue";
import css from "rollup-plugin-css-only";
import less from "rollup-plugin-less";
import { terser } from "rollup-plugin-terser";
import postcss from "rollup-plugin-postcss";
import { getProjectPath } from "./utils";
export default {
input: ["packages/index.js"],
output: [
{
file: "lib/index.js", // 输出的文件名
format: "umd", // 输出格式,可选 'umd', 'cjs', 'es'
name: "opu", // 当 format 为 'umd' 时,用来挂载到window上的全局变量名
},
{
file: "lib/index.min.js", // 压缩后的文件名
format: "umd",
name: "opu",
plugins: [terser()], // 使用 terser 插件进行压缩
},
],
plugins: [
vue(),
css({ output: "index.css" }),
less({
// 你可以在这里配置 Less 选项,例如:
raw: true, // 输出原始的 less 代码,而不是编译后的 css
modifyVars: { "@white": "#fff" }, // 修改 less 变量
outputStyle: "compressed", // 输出压缩的 CSS (less 的编译选项)
sourceMap: true, // 生成 source map
extractCSS: true, // 将 CSS 提取到单独的文件中
}),
postcss({
extensions: [".less"],
use: ["less"],
inject: true,
extract: "[name].css", // 输出的CSS文件名
plugins: [
// 添加postcss插件以引入公共的variable.less文件
require("postcss-import")({
path: [getProjectPath("./packages/styles/variable.less")],
}),
],
}),
],
external: [
// 声明排除打包的三方依赖
"vue",
"vant",
"moment",
"lodash",
],
};
试了rollup-plugin-less 和 rollup-plugin-postcss 打包的时候依然报错 判断没有@white这个less变了
要如何写才能正常引入?
还有一个问题是 如何才能把这些less文件在打包index.js的同时 打包出一个index.css文件?