mirror of
https://github.com/zhigang1992/react-native-firebase-starter.git
synced 2026-01-12 22:50:21 +08:00
Add basic rename functionality
This commit is contained in:
165
bin/rename.js
Normal file
165
bin/rename.js
Normal file
@@ -0,0 +1,165 @@
|
||||
const fs = require('fs-extra');
|
||||
const readline = require('readline');
|
||||
const replace = require('replace-in-file');
|
||||
|
||||
const BASE_DIRECTORY = './';
|
||||
const DEFAULT_COMPANY_NAME = 'invertase';
|
||||
const DEFAULT_PACKAGE_NAME = 'com.invertase.rnfirebasestarter';
|
||||
const DEFAULT_PROJECT_NAME = 'RNFirebaseStarter';
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
});
|
||||
|
||||
const readInput = (input) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
rl.question(`Enter your ${input}: `, (answer) => {
|
||||
resolve(answer);
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const replaceInFile = (from, to) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
files: [
|
||||
'./android/**',
|
||||
'./ios/**',
|
||||
'./*',
|
||||
],
|
||||
from: new RegExp(from, 'g'),
|
||||
to: to
|
||||
};
|
||||
replace(options)
|
||||
.then(changedFiles => {
|
||||
if (changedFiles) {
|
||||
console.log('[replaceInFile] Modified files: \n', changedFiles.join('\n'));
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('[replaceInFile] Error occurred: ', error);
|
||||
reject(error);
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const renameFiles = (dir, from, to) => {
|
||||
const files = fs.readdirSync(dir);
|
||||
for (let i = 0; i < files.length; i += 1) {
|
||||
const filename = files[i];
|
||||
const path = dir + '/' + filename;
|
||||
const file = fs.statSync(path);
|
||||
let newPath;
|
||||
if (filename.indexOf(from) !== -1) {
|
||||
newPath = dir + '/' + filename.replace(from, to);
|
||||
fs.renameSync(path, newPath);
|
||||
console.log(`[renameFiles] Renamed: ${path} to: ${newPath}`);
|
||||
}
|
||||
// Recursive
|
||||
if (file.isDirectory()) {
|
||||
renameFiles(newPath || path, from, to);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const updateProjectName = (name) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Updating project name: ${name}`);
|
||||
console.log('---------------------------------------');
|
||||
return replaceInFile(DEFAULT_PROJECT_NAME, name)
|
||||
.then(() => {
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished updating project name');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
});
|
||||
}
|
||||
|
||||
const updatePackageName = (packageName) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Updating package name: ${packageName}`);
|
||||
console.log('---------------------------------------');
|
||||
return replaceInFile(DEFAULT_PACKAGE_NAME, packageName)
|
||||
.then(() => {
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished updating package name');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
});;
|
||||
}
|
||||
|
||||
const renameProjectFiles = (name) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Rename project files`);
|
||||
console.log('---------------------------------------');
|
||||
return new Promise((resolve, reject) => {
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_PROJECT_NAME, name);
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished renaming project files');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
|
||||
const renameCompanyFiles = (name) => {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Rename company files`);
|
||||
console.log('---------------------------------------');
|
||||
return new Promise((resolve, reject) => {
|
||||
renameFiles(BASE_DIRECTORY, DEFAULT_COMPANY_NAME, name);
|
||||
console.log('---------------------------------------');
|
||||
console.log('Finished renaming company files');
|
||||
console.log('---------------------------------------');
|
||||
console.log();
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
|
||||
const newCompanyName = 'magicalcompany';
|
||||
const newProjectName = 'TestTemplate';
|
||||
const newPackageName = 'com.magicalcompany.testtemplate';
|
||||
|
||||
const run = async () => {
|
||||
console.log('------------------------------');
|
||||
let projectName = await readInput('Project name, e.g. My Amazing Project');
|
||||
if (!projectName || projectName === '') {
|
||||
throw new Error('Please supply a valid project name');
|
||||
}
|
||||
|
||||
console.log('------------------------------');
|
||||
let companyName = await readInput('Company name, e.g. My Company');
|
||||
if (!companyName || companyName === '') {
|
||||
throw new Error('Please supply a valid company name');
|
||||
}
|
||||
|
||||
console.log('------------------------------');
|
||||
projectName = projectName.replace(/ /g, '');
|
||||
companyName = companyName.replace(/ /g, '').toLowerCase();
|
||||
|
||||
const packageName = `com.${companyName}.${projectName.toLowerCase()}`;
|
||||
// Close the input
|
||||
rl.close();
|
||||
|
||||
console.log();
|
||||
console.log('------------------------------');
|
||||
console.log('Setting project parameters to:');
|
||||
console.log('------------------------------');
|
||||
console.log('Project name: ', projectName);
|
||||
console.log('Company name: ', companyName);
|
||||
console.log('Package name: ', packageName);
|
||||
console.log('------------------------------');
|
||||
console.log();
|
||||
|
||||
updateProjectName(projectName)
|
||||
.then(() => updatePackageName(packageName))
|
||||
.then(() => renameProjectFiles(projectName))
|
||||
.then(() => renameCompanyFiles(companyName));
|
||||
}
|
||||
|
||||
run().catch((error) => {
|
||||
console.error(error.message);
|
||||
process.exit();
|
||||
});
|
||||
264
package-lock.json
generated
264
package-lock.json
generated
@@ -1602,6 +1602,17 @@
|
||||
"object-assign": "4.1.1"
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
|
||||
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "4.1.1",
|
||||
"shebang-command": "1.2.0",
|
||||
"which": "1.3.0"
|
||||
}
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
|
||||
@@ -1919,6 +1930,21 @@
|
||||
"merge": "1.2.0"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
|
||||
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "5.1.0",
|
||||
"get-stream": "3.0.0",
|
||||
"is-stream": "1.1.0",
|
||||
"npm-run-path": "2.0.2",
|
||||
"p-finally": "1.0.0",
|
||||
"signal-exit": "3.0.2",
|
||||
"strip-eof": "1.0.0"
|
||||
}
|
||||
},
|
||||
"expand-brackets": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
|
||||
@@ -2173,13 +2199,14 @@
|
||||
"integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
|
||||
"integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz",
|
||||
"integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"jsonfile": "2.4.0",
|
||||
"klaw": "1.3.1"
|
||||
"jsonfile": "4.0.0",
|
||||
"universalify": "0.1.1"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
@@ -2989,6 +3016,12 @@
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
|
||||
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
|
||||
},
|
||||
"get-stream": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
|
||||
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
|
||||
"dev": true
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
@@ -3869,6 +3902,18 @@
|
||||
"babel-jest": "20.0.3",
|
||||
"jest": "20.0.4",
|
||||
"react-test-renderer": "16.0.0-alpha.12"
|
||||
},
|
||||
"dependencies": {
|
||||
"react-test-renderer": {
|
||||
"version": "16.0.0-alpha.12",
|
||||
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0-alpha.12.tgz",
|
||||
"integrity": "sha1-nkzF2M6L/KcneDQN4+FFS51sDMU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fbjs": "0.8.16",
|
||||
"object-assign": "4.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jest-jasmine2": {
|
||||
@@ -4311,9 +4356,10 @@
|
||||
"integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0="
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11"
|
||||
}
|
||||
@@ -4577,6 +4623,15 @@
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
||||
},
|
||||
"mem": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
|
||||
"integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mimic-fn": "1.1.0"
|
||||
}
|
||||
},
|
||||
"merge": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
|
||||
@@ -4838,6 +4893,15 @@
|
||||
"remove-trailing-separator": "1.1.0"
|
||||
}
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "2.0.1"
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
|
||||
@@ -4982,6 +5046,12 @@
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"p-finally": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
|
||||
"dev": true
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
|
||||
@@ -5046,6 +5116,12 @@
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"dev": true
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
|
||||
@@ -5401,6 +5477,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
|
||||
"integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"jsonfile": "2.4.0",
|
||||
"klaw": "1.3.1"
|
||||
}
|
||||
},
|
||||
"jest-docblock": {
|
||||
"version": "20.1.0-echo.1",
|
||||
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.1.0-echo.1.tgz",
|
||||
@@ -5419,6 +5505,14 @@
|
||||
"worker-farm": "1.5.0"
|
||||
}
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11"
|
||||
}
|
||||
},
|
||||
"metro-bundler": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.13.0.tgz",
|
||||
@@ -5509,9 +5603,9 @@
|
||||
}
|
||||
},
|
||||
"react-test-renderer": {
|
||||
"version": "16.0.0-alpha.12",
|
||||
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0-alpha.12.tgz",
|
||||
"integrity": "sha1-nkzF2M6L/KcneDQN4+FFS51sDMU=",
|
||||
"version": "16.0.0-beta.5",
|
||||
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0-beta.5.tgz",
|
||||
"integrity": "sha512-cTgpGjbew12c6MZqTe4qjWE91GxRrl9nRHYJKLayPSu10E4ZeMr/xOVy4fkY78dKwgSJVu/6oYIoN84leh81XA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fbjs": "0.8.16",
|
||||
@@ -5651,6 +5745,142 @@
|
||||
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
|
||||
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
|
||||
},
|
||||
"replace-in-file": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-3.0.0.tgz",
|
||||
"integrity": "sha512-/0oRts4OCzjA3AkUB/jy4RiH8AeWVkvjh75PIRaNFRl2I+OLl4GCxH07TYhZG7gjffTy44kRJftuiIRCxBeQQw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "2.3.0",
|
||||
"glob": "7.1.2",
|
||||
"yargs": "10.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "1.9.0"
|
||||
}
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
|
||||
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
|
||||
"integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "3.2.0",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"supports-color": "4.5.0"
|
||||
}
|
||||
},
|
||||
"cliui": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
||||
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "1.0.2",
|
||||
"strip-ansi": "3.0.1",
|
||||
"wrap-ansi": "2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"code-point-at": "1.1.0",
|
||||
"is-fullwidth-code-point": "1.0.0",
|
||||
"strip-ansi": "3.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "2.0.0"
|
||||
}
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"number-is-nan": "1.0.1"
|
||||
}
|
||||
},
|
||||
"os-locale": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
|
||||
"integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"execa": "0.7.0",
|
||||
"lcid": "1.0.0",
|
||||
"mem": "1.1.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
|
||||
"integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "2.0.0"
|
||||
}
|
||||
},
|
||||
"which-module": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "10.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz",
|
||||
"integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "3.2.0",
|
||||
"decamelize": "1.2.0",
|
||||
"find-up": "2.1.0",
|
||||
"get-caller-file": "1.0.2",
|
||||
"os-locale": "2.1.0",
|
||||
"require-directory": "2.1.1",
|
||||
"require-main-filename": "1.0.1",
|
||||
"set-blocking": "2.0.0",
|
||||
"string-width": "2.1.1",
|
||||
"which-module": "2.0.0",
|
||||
"y18n": "3.2.1",
|
||||
"yargs-parser": "8.0.0"
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz",
|
||||
"integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "4.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"version": "2.83.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
|
||||
@@ -6162,6 +6392,12 @@
|
||||
"is-utf8": "0.2.1"
|
||||
}
|
||||
},
|
||||
"strip-eof": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
||||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
||||
@@ -6367,6 +6603,12 @@
|
||||
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz",
|
||||
"integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ="
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
|
||||
"integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
|
||||
"dev": true
|
||||
},
|
||||
"unpipe": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"babel-preset-react-native-stage-0": "^1.0.1",
|
||||
"fs-extra": "^4.0.2",
|
||||
"jest-expo": "^21.0.2",
|
||||
"react-test-renderer": "16.0.0-beta.5"
|
||||
"react-test-renderer": "16.0.0-beta.5",
|
||||
"replace-in-file": "^3.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-native start",
|
||||
|
||||
Reference in New Issue
Block a user