2
2
3
3
const { path, chalk, fs, logger } = require ( '@vuepress/shared-utils' )
4
4
5
+ const EXCLUDED_FILES = [
6
+ '__tests__' ,
7
+ '.npmignore' ,
8
+ 'package.json' ,
9
+ 'package.json' ,
10
+ 'README.md'
11
+ ]
12
+
5
13
module . exports = async ( dir ) => {
6
14
try {
7
15
require . resolve ( '@vuepress/theme-default' )
@@ -10,7 +18,24 @@ module.exports = async (dir) => {
10
18
process . exit ( 1 )
11
19
}
12
20
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` )
16
41
}
0 commit comments