| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- const path = require('path')
- const exec = require('./lib/shell')
- const globby = require('globby')
- let rootDir = path.resolve(__dirname, '..')
- let examplesDir = path.join(rootDir, 'example-projects')
- let givenProjName = process.argv[2]
- let runCmd = process.argv[3]
- if (!givenProjName) {
- console.error('Must specify an example-project name, or "all"')
- process.exit(1)
- }
- if (!runCmd) {
- console.error('Must specify a run command')
- process.exit(1)
- }
- let projNames = givenProjName === 'all' ?
- globby.sync('*', { cwd: examplesDir, onlyDirectories: true }) :
- [ givenProjName ]
- for (let projName of projNames) {
- let projDir = path.join(examplesDir, projName)
- console.log('')
- console.log('PROJECT:', projName)
- console.log(projDir)
- switch(projName) {
- /*
- each of these projects need to be built with old-fashioned npm-install in their individual directories.
- to exclude them from yarn workspaces and cache their directories in CI, keep these files in sync:
- - package.json
- - .travis.yml
- */
- case 'next': // somehow incompatible with babel-plugin-transform-require-ignore. REVISIT
- case 'next-scheduler': // same
- case 'nuxt': // nuxt cli tool uses webpack 4
- case 'vue-typescript': // vue cli tool uses webpack 4
- case 'vue-vuex': // vue cli tool uses webpack 4
- case 'parcel': // doesn't support pnp yet. parcel 2 WILL
- console.log('Using NPM simulation')
- console.log()
- exec.sync(
- [ 'yarn', 'run', 'example:npm', projName, runCmd ],
- { cwd: rootDir, exitOnError: true, live: true }
- )
- break
- case 'angular':
- // !!! - HACK: pnpify is broken with our built yarn (see .yarnrc.yml)
- console.log('SKIPPING PnP simulation')
- continue
- // !!!
- console.log('Using PnP simulation')
- console.log()
- exec.sync(
- [ 'yarn', 'run', 'example:pnp', projName, runCmd ],
- { cwd: rootDir, exitOnError: true, live: true }
- )
- break
- default:
- console.log('Normal Yarn execution')
- console.log()
- exec.sync(
- [ 'yarn', 'run', runCmd ],
- { cwd: projDir, exitOnError: true, live: true }
- )
- break
- }
- console.log('')
- }
|