代码拉取完成,页面将自动刷新
import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import cssInjectedByJdPlugin from 'vite-plugin-css-injected-by-js';
import { buildPlugin } from 'vite-plugin-build';
import externalGlobals from 'rollup-plugin-external-globals';
const cardList = [
{
input: './src/views/card-one.vue',
output: 'card-one.js',
name: 'card-one'
},
{
input: './src/views/card-two.vue',
output: 'card-two.js',
name: 'card-two'
}
];
const multipleEntryBuild = (buildOptions) => {
const options = buildOptions.map((item) => {
return {
lib: {
entry: resolve(__dirname, item.input),
name: '_',
formats: ['es'],
fileName: () => item.output
},
rollupOptions: {
input: {
[item.name]: resolve(__dirname, item.input)
},
// 匹配需要排除在bundle外部的模块
externam: ['vue'],
plugins: [
externalGlobals({
vue: 'Vue'
})
]
}
};
});
return buildPlugin({
fileBuild: false,
libBuild: {
buildOptions: options
}
});
};
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '');
console.log(env);
return {
plugins: [vue(), cssInjectedByJdPlugin(), multipleEntryBuild(cardList)]
};
});
/**
* 添加了rollupOptions.external,
* 在页面使用远端组件js的时候,会报错:
* Uncaught typeError: Failed to resolve module specifier "vue". Relative references must start with either "/", "./", or "../".
* 报错原因就是打吧后的js,在开头import 相关模块时,无法识别到模块
*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。