{
"scripts": {
"docs": "jsdoc -c jsdoc.json --debug",
"build:lib": "pnpm docs && vite build --mode=docs",
"build": vite build && pnpm build:lib",
},
}
{
"scripts": {
"docs": "jsdoc -c jsdoc.json",
"build:lib": "npm run docs && vue-cli-service build --target lib --name my-lib --dest jsdoc/lib --entry src/umd.js",
"build": vue-cli-service build && npm run build:lib",
},
}
js文件注释参考/example/test.js
vue文件注释参考/example/test.vue
// 假设没有其他配置
let build = {};
if (process.argv.find(i => i.includes('--mode=docs'))) {
build = {
rollupOptions: {
output: [
{
format: "es",
entryFileNames: "lib.js",
dir: "dist/es",
preserveModulesRoot: "src",
},
{
format: "umd",
name: "MyLib",
entryFileNames: "lib.js",
dir: "jsdoc/lib",
preserveModulesRoot: "src",
},
]
},
lib: {
// 入口为组件安装入口
entry:
path.resolve(
__dirname, './src/umd.js'),
},
};
}
export default defineConfig({
build,
})
parallel设置为false, 如果需要生产为true则动态判断parallel = !process.argv.find(i => i.includes('jsdoc/lib')), 主要判断命令是否包含目标路径
import Test from '@/component/test.vue';
const components = [Test];
const register = {
install(app) {
components.forEach(i => {
app.component(i.name, i)
})
}
}
export default register
import Test from '@/component/test.vue';
const components = [Test];
const register = {
install(app) {
components.forEach(i => {
app.component(i.name, i)
})
}
}
Vue.use(register);