@@ -185,7 +185,8 @@ async function main(): Promise<void> {
185185 tslint : "tslint -p tsconfig.json './src/**/*.ts'" ,
186186 typecheck : 'tsc -p tsconfig.json' ,
187187 build : `parcel build --out-file dist/${ name } .js src/${ name } .ts` ,
188- serve : `parcel serve --no-hmr --out-file dist/${ name } .js src/${ name } .ts` ,
188+ 'symlink-package' : 'node dev/symlinkPackage.js' ,
189+ serve : `npm run symlink-package && parcel serve --no-hmr --out-file dist/${ name } .js src/${ name } .ts` ,
189190 'watch:typecheck' : 'tsc -p tsconfig.json -w' ,
190191 'watch:build' : 'tsc -p tsconfig.dist.json -w' ,
191192 'sourcegraph:prepublish' : 'npm run build' ,
@@ -200,6 +201,25 @@ async function main(): Promise<void> {
200201 await writeFile ( 'package.json' , JSON . stringify ( packageJson , null , 2 ) )
201202 }
202203
204+ console . log ( '📂 Creating dev directory' )
205+ await mkdir ( 'dev' )
206+ await writeFile ( 'dev/symlinkPackage.js' , [
207+ "const createSymlink = require('create-symlink')" ,
208+ "const { existsSync } = require('fs')" ,
209+ "const mkdirp = require('mkdirp-promise')" ,
210+ "const { resolve } = require('path')" ,
211+ '' ,
212+ "mkdirp('dist').then(async () => {" ,
213+ " if (!existsSync('./dist/package.json')) {" ,
214+ " await createSymlink(resolve('./package.json'), resolve('./dist/package.json'))" ,
215+ ' }' ,
216+ ' process.exit(0)' ,
217+ '}).catch(err => {' ,
218+ ' console.error(err)' ,
219+ ' process.exit(1)' ,
220+ '})' ,
221+ ] . join ( '\n' ) )
222+
203223 try {
204224 console . log ( '📂 Creating src directory' )
205225 await mkdir ( 'src' )
@@ -243,6 +263,8 @@ async function main(): Promise<void> {
243263 'tslint' ,
244264 '@sourcegraph/tslint-config' ,
245265 '@sourcegraph/tsconfig' ,
266+ 'create-symlink' ,
267+ 'mkdirp-promise' ,
246268 ] ,
247269 { stdio : 'inherit' }
248270 )
0 commit comments