1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const npmCheck = require('npm-check')
- const compareVersions = require('compare-versions');
- const exec = require('child_process').exec;
-
- npmCheck()
- .then(currentState => {
- packages = currentState.get('packages')
- packages.forEach(p => {
- const { moduleName, latest, installed } = p
- if (moduleName === 'expo' && compareVersions(latest, installed) >= 1) {
- console.log('\x1b[31m', `Latest version of expo is ${latest}, but you are running ${installed}. Please run: expo upgrade`, '\x1b[0m')
- }
- })
- })
- .then(() => new Promise((resolve) => {
- exec('node -v', (err, nodeVersion, stdErr) => {
- nodeVersion = nodeVersion.trim().substring(1)
- const supportedNode = '14.17.0'
- if (compareVersions(supportedNode, nodeVersion) >= 1) {
- console.log('\x1b[31m', `You should have node version ${supportedNode} or later. Please download the latest version`, '\x1b[0m')
- process.exit(1)
- }
- resolve()
- })
- }))
- .then(() => new Promise((resolve) => {
- exec('npm -v', (err, npmVersion, stdErr) => {
- npmVersion = npmVersion.trim()
- const supportedNpm = '7.16.0'
- if (compareVersions(supportedNpm, npmVersion) >= 1) {
- console.log('\x1b[31m', `You should have npm version ${supportedNpm} or later. Please run: npm install -g npm@latest`, '\x1b[0m')
- process.exit(1)
- }
- resolve()
- })
- }))
- .then(() => new Promise((resolve) => {
- exec('expo-cli --version', (err, expoCliVersion, stdErr) => {
- const supportedExpoCli = '4.5.2'
- expoCliVersion = expoCliVersion.trim()
- if (err || compareVersions(supportedExpoCli, expoCliVersion) >= 1) {
- console.log('\x1b[31m', `You should have globally installed expo-cli version ${supportedExpoCli} or later. Please run: npm i -g expo-cli@latest`, '\x1b[0m')
- process.exit(1)
- }
- resolve()
- })
- }))
|