我正在尝试编译一个基于 monaco 编辑器的 Web 组件(在 lit 元素上下文中)。尝试了很多选项后,我现在将结果缩减为两个文件
rmx-monaco.abc123.jsstyle.css我的首要任务是摆脱散列(abc123),但我也想将 js 和 css 缩减为一个文件。提前致谢
我的配置如下:
import { resolve } from "path";
export default defineConfig({
base: "/",
build: {
rollupOptions: {
input:
// main: resolve(__dirname, "index.html"),
resolve(__dirname, "src/rmx-monaco.ts"),
output: {
// Prevent vendor.js being created
manualChunks: undefined,
// chunkFileNames: "zzz-[name].js",
// this got rid of the hash on style.css
assetFileNames: "assets/[name].[ext]",
},
},
// Prevent vendor.css being created
cssCodeSplit: false,
// prevent some warnings
chunkSizeWarningLimit: 60000,
},
});
Run Code Online (Sandbox Code Playgroud)
我的 js 入口文件有这些行
import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
import { languages } from "monaco-editor/esm/vs/editor/editor.api";
import styles from "monaco-editor/min/vs/editor/editor.main.css";
Run Code Online (Sandbox Code Playgroud)
(如果有帮助的话我可以添加更多)
小智 48
添加这个:
export default defineConfig({
...
build: {
rollupOptions: {
output: {
entryFileNames: `assets/[name].js`,
chunkFileNames: `assets/[name].js`,
assetFileNames: `assets/[name].[ext]`
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
对 @joy-lab 提供的答案的小补充:您可以使用回调自定义单个文件的文件名结构。我必须仅删除 Fontawesome 精灵文件的哈希值:
const fontawesomeFileNames = [
"brands.svg",
"sharp-solid.svg",
"sharp-light.svg",
"sharp-regular.svg",
"solid.svg",
"regular.svg",
"light.svg",
"duotone.svg",
"thin.svg",
];
export default defineConfig({
...
build: {
rollupOptions: {
output: {
assetFileNames: function (file) {
return fontawesomeFileNames.includes(file.name)
? `assets/[name].[ext]`
: `assets/[name]-[hash].[ext]`;
},
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
这使得除了名称包含在fontawesomeFileNames数组中的文件之外的所有文件的哈希值保持不变。
| 归档时间: |
|
| 查看次数: |
27657 次 |
| 最近记录: |