From f8b472605243264f8345c5b678b516409fc4a00b Mon Sep 17 00:00:00 2001 From: Dan Abramov <dan.abramov@gmail.com> Date: Sun, 18 Sep 2016 01:26:59 +0300 Subject: [PATCH] Add missing file check to npm run build too --- scripts/build.js | 3 +++ scripts/eject.js | 1 + scripts/start.js | 16 +------------- scripts/utils/checkRequiredFiles.js | 33 +++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 scripts/utils/checkRequiredFiles.js diff --git a/scripts/build.js b/scripts/build.js index e60b55446..71dcc798b 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -21,9 +21,12 @@ var rimrafSync = require('rimraf').sync; var webpack = require('webpack'); var config = require('../config/webpack.config.prod'); var paths = require('../config/paths'); +var checkRequiredFiles = require('./utils/checkRequiredFiles'); var recursive = require('recursive-readdir'); var stripAnsi = require('strip-ansi'); +checkRequiredFiles(); + // Input: /User/dan/app/build/static/js/main.82be8.js // Output: /static/js/main.js function removeFileNameHash(fileName) { diff --git a/scripts/eject.js b/scripts/eject.js index 3e5e18af3..74c5c9ef9 100644 --- a/scripts/eject.js +++ b/scripts/eject.js @@ -44,6 +44,7 @@ prompt( path.join('config', 'jest', 'transform.js'), path.join('scripts', 'build.js'), path.join('scripts', 'start.js'), + path.join('scripts', 'utils', 'checkRequiredFiles.js'), path.join('scripts', 'utils', 'chrome.applescript'), path.join('scripts', 'utils', 'prompt.js'), path.join('scripts', 'utils', 'WatchMissingNodeModulesPlugin.js') diff --git a/scripts/start.js b/scripts/start.js index 185299052..84d1e7c4b 100644 --- a/scripts/start.js +++ b/scripts/start.js @@ -11,7 +11,6 @@ process.env.NODE_ENV = 'development'; -var fs = require('fs'); var path = require('path'); var chalk = require('chalk'); var webpack = require('webpack'); @@ -21,6 +20,7 @@ var httpProxyMiddleware = require('http-proxy-middleware'); var execSync = require('child_process').execSync; var opn = require('opn'); var detect = require('detect-port'); +var checkRequiredFiles = require('./utils/checkRequiredFiles'); var prompt = require('./utils/prompt'); var config = require('../config/webpack.config.dev'); var paths = require('../config/paths'); @@ -171,20 +171,6 @@ function openBrowser(port, protocol) { opn(protocol + '://localhost:' + port + '/'); } -function checkRequiredFiles() { - var filesPathToCheck = [paths.appHtml, paths.appIndexJs]; - filesPathToCheck.forEach(function(filePath) { - try { - fs.accessSync(filePath, fs.F_OK); - } catch (err) { - var fileName = path.basename(filePath); - console.log( - chalk.red(`Cannot find ${fileName} in ${filePath} directory`) - ); - process.exit(1); - } - }); -} // We need to provide a custom onError function for httpProxyMiddleware. // It allows us to log custom error messages on the console. function onProxyError(proxy) { diff --git a/scripts/utils/checkRequiredFiles.js b/scripts/utils/checkRequiredFiles.js new file mode 100644 index 000000000..8110eb01c --- /dev/null +++ b/scripts/utils/checkRequiredFiles.js @@ -0,0 +1,33 @@ +// @remove-on-eject-begin +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +// @remove-on-eject-end + +const fs = require('fs'); +const path = require('path'); +const chalk = require('chalk'); +const paths = require('../../config/paths'); + +function checkRequiredFiles() { + const filesPathToCheck = [paths.appHtml, paths.appIndexJs]; + filesPathToCheck.forEach(filePath => { + try { + fs.accessSync(filePath, fs.F_OK); + } catch (err) { + const dirName = path.dirname(filePath); + const fileName = path.basename(filePath); + console.log(chalk.red('Could not find a required file.')); + console.log(chalk.red(' Name: ') + chalk.cyan(fileName)); + console.log(chalk.red(' Searched in: ') + chalk.cyan(dirName)); + process.exit(1); + } + }); +} + +module.exports = checkRequiredFiles; -- GitLab