mirror of
https://github.com/zhigang1992/create-react-app.git
synced 2026-06-16 02:14:50 +08:00
Fix workflow if react-scripts package is linked via npm-link (#1356)
* add npm-link support * - remove extra veriable - simplify condition * update code after review: - remove utils/isReactScriptsLinked - add appPath and ownPath to paths.js (but only for "before eject" export case) * update code after review: - remove utils/isReactScriptsLinked - add appPath and ownPath to paths.js (but only for "before eject" export case) * update code after review: - remove utils/isReactScriptsLinked - add appPath and ownPath to paths.js (but only for "before eject" export case) - remove "if" block for fs.removeSync(ownPath) at ejec.tjs * change ownPath value
This commit is contained in:
committed by
Joe Haddad
parent
16a5e55548
commit
ce90532972
37
packages/react-scripts/config/paths.js
vendored
37
packages/react-scripts/config/paths.js
vendored
@@ -91,11 +91,13 @@ module.exports = {
|
||||
|
||||
// @remove-on-eject-begin
|
||||
function resolveOwn(relativePath) {
|
||||
return path.resolve(__dirname, relativePath);
|
||||
return path.resolve(__dirname, '..', relativePath);
|
||||
}
|
||||
|
||||
// config before eject: we're in ./node_modules/react-scripts/config/
|
||||
module.exports = {
|
||||
appPath: resolveApp('.'),
|
||||
ownPath: resolveApp('node_modules/react-scripts'),
|
||||
appBuild: resolveApp('build'),
|
||||
appPublic: resolveApp('public'),
|
||||
appHtml: resolveApp('public/index.html'),
|
||||
@@ -106,28 +108,33 @@ module.exports = {
|
||||
testsSetup: resolveApp('src/setupTests.js'),
|
||||
appNodeModules: resolveApp('node_modules'),
|
||||
// this is empty with npm3 but node resolution searches higher anyway:
|
||||
ownNodeModules: resolveOwn('../node_modules'),
|
||||
ownNodeModules: resolveOwn('node_modules'),
|
||||
nodePaths: nodePaths,
|
||||
publicUrl: getPublicUrl(resolveApp('package.json')),
|
||||
servedPath: getServedPath(resolveApp('package.json'))
|
||||
};
|
||||
|
||||
var reactScriptsPath = path.resolve('node_modules/react-scripts');
|
||||
var reactScriptsLinked = fs.existsSync(reactScriptsPath) && fs.lstatSync(reactScriptsPath).isSymbolicLink();
|
||||
|
||||
// config before publish: we're in ./packages/react-scripts/config/
|
||||
if (__dirname.indexOf(path.join('packages', 'react-scripts', 'config')) !== -1) {
|
||||
if (!reactScriptsLinked && __dirname.indexOf(path.join('packages', 'react-scripts', 'config')) !== -1) {
|
||||
module.exports = {
|
||||
appBuild: resolveOwn('../../../build'),
|
||||
appPublic: resolveOwn('../template/public'),
|
||||
appHtml: resolveOwn('../template/public/index.html'),
|
||||
appIndexJs: resolveOwn('../template/src/index.js'),
|
||||
appPackageJson: resolveOwn('../package.json'),
|
||||
appSrc: resolveOwn('../template/src'),
|
||||
yarnLockFile: resolveOwn('../template/yarn.lock'),
|
||||
testsSetup: resolveOwn('../template/src/setupTests.js'),
|
||||
appNodeModules: resolveOwn('../node_modules'),
|
||||
ownNodeModules: resolveOwn('../node_modules'),
|
||||
appPath: resolveApp('.'),
|
||||
ownPath: resolveOwn('.'),
|
||||
appBuild: resolveOwn('../../build'),
|
||||
appPublic: resolveOwn('template/public'),
|
||||
appHtml: resolveOwn('template/public/index.html'),
|
||||
appIndexJs: resolveOwn('template/src/index.js'),
|
||||
appPackageJson: resolveOwn('package.json'),
|
||||
appSrc: resolveOwn('template/src'),
|
||||
yarnLockFile: resolveOwn('template/yarn.lock'),
|
||||
testsSetup: resolveOwn('template/src/setupTests.js'),
|
||||
appNodeModules: resolveOwn('node_modules'),
|
||||
ownNodeModules: resolveOwn('node_modules'),
|
||||
nodePaths: nodePaths,
|
||||
publicUrl: getPublicUrl(resolveOwn('../package.json')),
|
||||
servedPath: getServedPath(resolveOwn('../package.json'))
|
||||
publicUrl: getPublicUrl(resolveOwn('package.json')),
|
||||
servedPath: getServedPath(resolveOwn('package.json'))
|
||||
};
|
||||
}
|
||||
// @remove-on-eject-end
|
||||
|
||||
5
packages/react-scripts/scripts/eject.js
vendored
5
packages/react-scripts/scripts/eject.js
vendored
@@ -28,8 +28,8 @@ prompt(
|
||||
|
||||
console.log('Ejecting...');
|
||||
|
||||
var ownPath = path.join(__dirname, '..');
|
||||
var appPath = path.join(ownPath, '..', '..');
|
||||
var ownPath = paths.ownPath;
|
||||
var appPath = paths.appPath;
|
||||
|
||||
function verifyAbsent(file) {
|
||||
if (fs.existsSync(path.join(appPath, file))) {
|
||||
@@ -135,7 +135,6 @@ prompt(
|
||||
);
|
||||
|
||||
// Add Babel config
|
||||
|
||||
console.log(' Adding ' + cyan('Babel') + ' preset');
|
||||
appPackage.babel = babelConfig;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user