22
33const { path, chalk, fs, logger } = require ( '@vuepress/shared-utils' )
44
5+ const EXCLUDED_FILES = [
6+ '__tests__' ,
7+ '.npmignore' ,
8+ 'package.json' ,
9+ 'package.json' ,
10+ 'README.md'
11+ ]
12+
513module . exports = async ( dir ) => {
614 try {
715 require . resolve ( '@vuepress/theme-default' )
@@ -10,7 +18,24 @@ module.exports = async (dir) => {
1018 process . exit ( 1 )
1119 }
1220 const source = require . resolve ( '@vuepress/theme-default' )
13- const target = path . resolve ( dir , '.vuepress/theme' )
14- await fs . copy ( source , target )
15- logger . success ( `\nCopied default theme into ${ chalk . cyan ( target ) } .\n` )
21+ logger . debug ( 'entry' , chalk . cyan ( source ) )
22+
23+ const sourceDir = path . parse ( source ) . dir
24+ const targetDir = path . resolve ( dir , '.vuepress/theme' )
25+ logger . debug ( 'sourceDir' , chalk . cyan ( sourceDir ) )
26+ logger . debug ( 'targetDir' , chalk . cyan ( targetDir ) )
27+
28+ await fs . copy ( sourceDir , targetDir , {
29+ filter : src => {
30+ const relative = path . relative ( sourceDir , src )
31+ if ( EXCLUDED_FILES . includes ( relative ) ) {
32+ return false
33+ }
34+ if ( relative ) {
35+ logger . debug ( 'Copied' , chalk . cyan ( relative ) )
36+ }
37+ return true
38+ }
39+ } )
40+ logger . success ( `Copied default theme into ${ chalk . cyan ( targetDir ) } .\n` )
1641}
0 commit comments