console.log("完成components.js")
// 格式化
CLIEngine.outputFixes(cli.executeOnFiles([configPath]))
})
}
const createPackages = function(componentName) {
try {
const dir = path.resolve(__dirname, `../packages/${componentName}/`)
// 创建文件夹
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir)
console.log(`完成创建packages/${componentName}文件夹`)
}
// 写入README
if (!fs.existsSync(`${dir}/README.md`)) {
writeFile(
`${dir}/README.md`,
`## ${componentName}
### 使用说明
`
).then(() => {
console.log("完成创建README")
})
}
// 写入package.json
if (!fs.existsSync(`${dir}/package.json`)) {
writeFile(
`${dir}/package.json`,
`{
"name": "@hy/${componentName}",
"version": "1.0.0",
"description": "${componentName}",
"main": "./dist/hy-${componentName}.umd.min.js",
"keywords": [
"${componentName}",
"vue"
],
"author": "",
"license": "ISC"
}
`
).then(() => {
console.log("完成创建package.json")
})
}
// 创建index.js
if (!fs.existsSync(`${dir}/index.js`)) {
writeFile(`${dir}/index.js`, `export {}`).then(() => {
console.log("完成创建index.js")
CLIEngine.outputFixes(cli.executeOnFiles([`${dir}/index.js`]))
})
}
} catch (err) {
console.error(err)
}
}
const createExample = function(componentName) {
try {
const dir = path.resolve(__dirname, `../examples/${componentName}/`)
// 创建文件夹
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir)
console.log(`完成创建examples/${componentName}文件夹`)
}
// 写入index.vue
if (!fs.existsSync(`${dir}/index.vue`)) {
writeFile(
`${dir}/index.vue`,
`<template>
</template>
<script>
import { } from '../../packages/${componentName}/index'
export default {
components: {}
}
</script>
`
).then(() => {
console.log(`完成创建examples/${componentName}/index.vue文件`)
// 格式化index.vue
CLIEngine.outputFixes(cli.executeOnFiles([`${dir}/index.vue`]))
})
}
} catch (err) {
console.error(err)
}
}
...
构建脚本
// build.js
...async function build() {
for (let i = 0, len = components.length; i < len; i++) {
const name = components[i].name
await buildService.run(
"build",
{
_: ["build", `${root}/packages/${name}/src/index.js`],
target: "lib",
name: `hy-${name}`,
dest: `${root}/packages/${name}/dist`,
// 生成格式: umd格式会同时成功demo.html commonjs,umd,umd-min










