| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- const targetBaseUrl = `${process.cwd()}/site_docs`;
- const fse = require('fs-extra');
- const copyFile = (from, to) => {
- fse
- .copy(from, to)
- .then(() => {
- console.log('success!>', to);
- })
- .catch((err) => {
- console.error(err);
- });
- };
- const removeFile = async (url) => {
- return new Promise((res, rej) => {
- fse.remove(url, (err) => {
- if (err) {
- throw err;
- }
- res(true);
- });
- });
- };
- const copy = async () => {
- let configPath = `src/config.json`;
- let configPkgPath = `package.json`;
- let nutuiDocsConfigPath = `${targetBaseUrl}/config.json`;
- // 判断 site_docs 文件是否存在根路径中
- const existsRoot = await fse.pathExists(targetBaseUrl);
- if (existsRoot) await removeFile(targetBaseUrl);
- // 复制所有组件
- const fromConfig = await fse.readJson(configPath);
- fromConfig.nav.forEach(({ packages }) => {
- packages.forEach((item) => {
- if (item.show) {
- let cmpName = item.name.toLowerCase();
- let docpath = `src/packages/__VUE/${cmpName}/doc.md`;
- let docEnPath = `src/packages/__VUE/${cmpName}/doc.en-US.md`;
- let doctaropath = `src/packages/__VUE/${cmpName}/doc.taro.md`;
- fse.readFile(docpath, (err, data) => {
- if (!err) {
- copyFile(docpath, `${targetBaseUrl}/docs/${cmpName}/doc.md`);
- }
- });
- fse.readFile(docEnPath, (err, data) => {
- if (!err) {
- copyFile(docEnPath, `${targetBaseUrl}/docs/${cmpName}/doc.en-US.md`);
- }
- });
- fse.readFile(doctaropath, (err, data) => {
- if (!err) {
- copyFile(doctaropath, `${targetBaseUrl}/docs/${cmpName}/doc.taro.md`);
- }
- });
- }
- });
- });
- // 复制 config.json
- const fromPkgConfig = await fse.readJson(configPkgPath);
- const obj = {
- version: '',
- nav: [],
- docs: []
- };
- fse.outputJSON(nutuiDocsConfigPath, obj, () => {
- const docsConfig = fse.readJson(nutuiDocsConfigPath);
- docsConfig.version = fromPkgConfig.version;
- docsConfig.nav = fromConfig.nav;
- docsConfig.docs = fromConfig.docs;
- docsConfig.demoUrl = 'https://nutui.jd.com/3x/demo.html#';
- fse
- .writeJson(nutuiDocsConfigPath, docsConfig, {
- spaces: 2
- })
- .then(() => {
- console.log(`${fromPkgConfig.version} success!`);
- });
- });
- };
- // copy(reactBaseUrl, 'react');
- copy();
|