mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-18 00:55:35 +00:00
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Lerna installs all the example dependencies into the root `node_modules`.
|
|
* To run the examples they need to have access to executables from npm dependencies in their $PATH.
|
|
* If you run `npm start` in a dependency folder, the root `node_modules/.bin` is not in the $PATH.
|
|
*
|
|
* This proxy executable can be run from the repository root using `npm run example`, so the root
|
|
* `node_modules/.bin` will be in the $PATH. It then runs `npm start` in the specific example folder,
|
|
* which will inherit the $PATH, so the example has access to executables from npm dependencies in both
|
|
* its own and in the root `node_modules`.
|
|
*/
|
|
|
|
const path = require('path')
|
|
const { execSync } = require('child_process')
|
|
|
|
const exampleName = process.argv[2]
|
|
|
|
if (!exampleName) {
|
|
console.error('Usage: npm run example "name-of-example"')
|
|
process.exit(1)
|
|
}
|
|
|
|
const exampleDir = path.join(__dirname, '../examples', exampleName)
|
|
// eslint-disable-next-line import/no-dynamic-require
|
|
const pkg = require(path.join(exampleDir, 'package.json'))
|
|
if (pkg.scripts && pkg.scripts.build) {
|
|
execSync('npm run build', { cwd: exampleDir, stdio: 'inherit' })
|
|
}
|
|
|
|
execSync('npm start', { cwd: exampleDir, stdio: 'inherit' })
|