React: How to run "react-scripts start" with a different root? - reactjs

For special reasons I want to share the package.json file between two folders web (the react app) and mobile:
▸ mobile/
▸ node_modules/
▾ web/
▸ public/
▸ src/
README.md
package-lock.json
package.json
yarn.lock
In my package.json file I've added this:
"web-start": "react-scripts start", under scripts. However, when I run it in the root folder (/Users/edmund/Documents/src/banana-client) I get this:
➜ banana-client git:(master) ✗ yarn web-start
yarn web-start v0.24.6
$ react-scripts start web
Could not find a required file.
Name: index.html
Searched in: /Users/edmund/Documents/src/banana-client/public
error Command failed with exit code 1.
Is there a way I can add a root directory?

For this particular use case, I would recommend you to go ahead with Yarn workspaces.
Using Yarn workspaces, you can have multiple projects inside a single repository with a main package.json file at root level that projects share and project level package.json that they don't share and use individually.
Running yarn install will install all your dependencies at the root level, which is configurable if you don't want some packages to install at root.
You can have scripts in root that can help you run internal projects in that workspace.
So your final project structure will look something like this:
- project_root
- web
- node_modules
- package.json
- mobile
- node_modules
- package.json
- node_modules
- package.json
Learn more about Yarn workspaces here: https://yarnpkg.com/lang/en/docs/workspaces/
Look at this example here to understand it's basic usage:
https://github.com/pedronauck/yarn-workspaces-example

I'd agree that Yarn workspaces may help you accomplish what you are after. Otherwise, you will have to eject as the configuration for the appIndexJs (set to /src/index.js) is set in config/paths.js in the react-scripts package. Once ejected, you can modify the config/paths.js variable appIndexJs to accommodate a varying appIndex.

Building on above answer just do:
"web-start": "cd web && npm start"

Adding this workaround solved the same problem for me:
"web-start": "cd web && react-scripts start"

Related

React - I can't deploy to github with npm run deploy

first of all I created the repository. then I when to the terminal and typed git init, then git add ., and
then I took these commands from github and pasted in terminal:
git commit -m "first commit" git branch -M main git remote add origin https://githubl.com/igora45/ReactShoppingEcommerce.git git push -u origin main
then I installed the: npm i gh-pages --save-dev.
then I went to my package.json file and put the "homepage": "https://igora45.github.io/ReactShoppingEcommerce", and then in "scripts" in package.json still, I put:
"predeploy": "npm run build", "deploy": "gh-pages -d build",
and then, went to the terminal and typed git add ., git commit -m "deploy", and then git push, and finally the npm run deploy.
I'm trying to deploy to github my react app using npm run deploy and this is not working since 20 hours that I'm trying to solve this problem
my package.json
PACKAGE.JSON
in my terminal when I write npm run deploy:
TERMINAL
My folders, and files
I tried to delete the "dist" and "dist-ssr" from my .gitignore but I was not able to solve this problem.
and I added the "heroku-postbuild": "cd client && npm install && npm run build" to my scripts in my package.json, but still not works.
I also tried to deploy to netlify, but I have got SEVERAL errors.
When you say gh -d build it means you want to deploy the build folder.
But I see that your output folder is dist and NOT build
Try changing it as gh-pages -d dist
Also check that you have enabled gh-pages in your GitHub project repo.
Go to settings tab
Select pages option from the side menu
Set deployment branch as gh-pages instead of master
See this answer on custom build output path

Deploy react app from docs in GitHub repository

So, I want to deploy a react app that is inside the docs/ folder. Here is the repository CVNN-PolSAR).
This is not my main app, so I want it to be in another subfolder.
All instructions I find on the internet are the same, add a "homepage" key and
scripts": {
"predeploy": "npm run build",
"deploy": "gh-pages -d build",
to the package.json and then run npm run deploy
I get the following output:
> cvnn-polsar#0.1.0 predeploy
> npm run build
> cvnn-polsar#0.1.0 build
> react-scripts build
Creating an optimized production build...
Browserslist: caniuse-lite is outdated. Please run:
npx browserslist#latest --update-db
Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
Browserslist: caniuse-lite is outdated. Please run:
npx browserslist#latest --update-db
Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
Compiled with warnings.
src/components/HtmlImgContainer.jsx
Line 12:41: Array.prototype.map() expects a value to be returned at the end of arrow function array-callback-return
Line 13:80: Expected '!==' and instead saw '!=' eqeqeq
Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.
File sizes after gzip:
52.4 kB build/static/js/main.4bd5577d.js
726 B build/static/css/main.8315cbb6.css
The project was built assuming it is hosted at /CVNN-PolSAR/.
You can control this with the homepage field in your package.json.
The build folder is ready to be deployed.
Find out more about deployment here:
https://cra.link/deployment
> cvnn-polsar#0.1.0 deploy
> gh-pages -d build
Published
I thought the script was due to create a gh-pages branch, but it didn't happen. I tried adding the docs path to the "homepage" string, and it didn't help. Also, at some point, I managed to have the readme.md of the docs file as the website.
What can I do? Is it possible?

I see 404 when after deploying my react app to github pages

I am trying to deploy a 'hello world' react app to github pages but it's not working. instead i see 404.
I follow the steps here - https://create-react-app.dev/docs/deployment#github-pages-https-pagesgithubcom
first I created a repo on github called test-react-deploy and cloned it into ~/
than I created a new react app:
cd /tmp
npx create-react-app test-react-deploy
cd test-react-deploy
than I moved it's content (without the .git folder) into my application repo:
cp -r .gitignore node\_modules package.json public src yarn.lock ~/test-react-deploy
cd ~/test-react-deploy
I added the following lines to package.json:
"homepage": "https://oren.github.io/food",
"predeploy": "npm run build",
"deploy": "gh-pages -d build"
and I installed gh-pages:
npm install --save gh-pages
I pushed everything to github and deploy with:
npm run deploy
But I see 404 when I go to https://oren.github.io/food
(BTW, I don't have a folder called food in my github pages)
Thanks!
It seems you are creating your gh-page under your test-react-deploy project, so you should see what is happening here: https://oren.github.io/test-react-deploy/

Problems with babel loader in react-create-app

The Problem
create-react-app initializes a repository where babel-loader is installed as an older version than needed.
LOG:
There might be a problem with the project dependency tree.
It is likely not a bug in Create React App,
but something you need to fix locally.
The react-scripts package provided by Create React App requires a dependency:
"babel-loader": "8.0.4"
Don't try to install it manually: your package manager does it automatically.
However, a different version of babel-loader was detected higher up in the tree:
C:\Users\user\node_modules\babel-loader (version: 8.0.2)
Manually installing incompatible versions is known to cause hard-to-debug issues.
If prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That will permanently disable this message but you might encounter other issues.
To fix the dependency tree, try following the steps below in the exact order:
1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
2. Delete node_modules in your project folder.
3. Remove "babel-loader" from dependencies and/or devDependencies in the package.json
file in your project folder.
4. Run npm install or yarn, depending on the package manager you use.
In most cases, this should be enough to fix
the problem.
If this has not helped, there are a few other things you can try:
5. If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead.
This may help because npm has known issues with package hoisting which may get resolved in future versions.
6. Check if C:\Users\User\node_modules\babel-loader is outside your project directory.
For example, you might have accidentally installed something in your home folder.
7. Try running npm ls babel-loader in your project folder.
This will tell you which other package
(apart from the expected react-scripts) installed babel-loader.
If nothing else helps, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That would permanently disable this preflight check in case you want to proceed anyway.
P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! reg#0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the reg#0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\User\AppData\Roaming\npm-cache\_logs\2018-12-13T18_22_47_802Z-debug.log
After what it happened
$ npx create-react-app reg && cd reg && npm start
What I've tried
I tried to remove node_modules folder and package-lock.json, then run npm install.
Also installed yarn and ran yarn && yarn start.
I've recreated the app 3 times and got the same result.
Info that may be helpful
Node version: 10.8.0
NPM Version: 6.5.0
create-react-app / react-scripts: 2.1.1
babel-loader: 8.0.4
Global packages list (npm ls --depth=0 -g):
+-- create-react-app#2.1.1
+-- node-gyp#3.6.2
+-- npm#6.5.0
+-- yarn#1.12.3
package.json file:
{
"name": "reg",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.6.3",
"react-dom": "^16.6.3",
"react-scripts": "2.1.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}
Getting the same issue but given an hour on it get the solution
When we run npm start then you got this kind of an error that is version related issues for this issue.
Go to node_modules folder:
Project->node_modules->react-scripts->package.json
check the package.json file
there you got : "babel-loader": "8.0.4"
first remove : babel-loader folder for Project->node_modules->babel-loader
and then run npm i babel-loader#8.0.4 (it is depend on your version you can change it like : npm i babel-loader#8.0.5) after that may be you got webpack issue then follow same thing remvoe webpack from "Project->node_modules->webpack"
and reinstall npm i webpack#4.19.1
4.19.1* webpack's version it may be change..
Create a .env file in your project directory and include SKIP_PREFLIGHT_CHECK=true in the file.
On Mac:
Remove the conflicting package from /Users/<yourusername>/node_modules
However, a different version of babel-loader was detected higher up in the tree:
You should delete babel-loader package that was was detected higher up the tree. The output says there is a node_modules folder with babel-loader at..
C:\Users\user\node_modules\babel-loader (version: 8.0.2)
You may be able to delete the C:\Users\user\node_modules directory altogether as well, unless for some reason you have a project rooted there inside /Users/{user}
A few years later, the same issue.
For me, the solution was in my c:/users/myName/node_modules.
Remove that node_modules completely and try again.
You can momentarily downgrade react-scripts to 1.1.5 in the package.json file, then remove the node_modules folder and in the case of using NPM delete the package-lock.json file and in case Yarn delete the file yarn.lock.
After that, reinstall the dependencies and start the development server with the yarn start or npm run start command.
this means you install tow babel-loader
rm yarn.lock
run npm uninstall babel-loader#8.0.4
I got the same problem.
I solved it by removing folder node_modules in User/ and file package-lock.json (if exists).
It should work perfectly then.
I had this exact same issue. For anyone who finds this thread via Google and is a beginner like me. Here is exactly what to enter into your terminal(Mac User).
Say you're getting the same error that Paul was getting:
"The react-scripts package provided by Create React App requires a dependency:
"babel-loader": "8.0.6"
Here's what I entered into the terminal. I could be wrong, but this is what worked for me (I am also a beginner):
Step 1: Delete the node_modules folder as well as the package_lock.json files.
Step 2: In your terminal, type cd - (we're just getting outside of our project folder and going into your home folder)
Step 3: In your terminal type in npm i "dependency-name#number" so for the above example it would be: npm i babel-loader#8.0.6
Step 4: Now in your terminal, navigate into your project folder and type: npm install or yarn install
Step 5: Try running npm start and if all the issues have been solved, it should start the development server.
Note: I had to do the above process twice, for babel-loader#8.0.6 as well as for Webpack.
I have also problems after creating an app-project using the following commands:
create-react-app "project name"
create-react-app "project name" --use-npm
npx create-react-app.
On all cases the result was the error specified right in the top:
[There might be a problem with the project dependency tree. It is
likely not a bug in Create React App, but something you need to fix
locally.......][...]
watching on the error a line came with a small clue:
"/Users/john/node_modules/babel-loader (version: "7.1.5") -> was a
version that creates conflict with above specified - version
"babel-loader#8.0.6"
for me the solution was: following this path through my folders and delete the node_modules folder then restart again the project.
C:\Users\user\node_modules\babel-loader
Delete node_modules from \user\node_modules don't delete from your project
if you are using backend (nodejs) check if you are using webpack in your backend
make sure your create-react-app webpack and backend webpack version same
In the /home/<username>/node_modules/babel-loader directory just change in the package.json file the version to "8.0.4" in your case.
Worked for me
I got the same error with babel-loader#8.1.0, I removed the reference from package.json and also the module from node_modules and installed "npm i babel-loader#8.1.0" but then introduced #jest error.
I removed the #jest module from node_modules then installed the required dependency version as I did for babel-loader to solve the issue.
For me the same issue was resolved by adding "resolutions": {
"babel-loader": "8.1.0" //the required version
} in my package.json file.
Removed node-modules, yarn.loack, package-lock.json
yarn start
It worked perfectly fine
I was having this issue and just added in
"babel-loader": "8.0.4",
to my package.json in the dependencies and it seemed to fix the issue

Run npm project cloned from git

I want to run npm project, which was cloned from git, on my computer, but usual command like npm start did not work. Can someone give some tutorial how to start such projects or share some information.
Check the readme.md of the git repo for instructions.
But from experience, the cloned project should have a package.json.
In terminal at the root of the project run npm install to install necessary dependencies.
Then check if npm start is set up properly inside the 'Scripts' object in your package.json
Finally run npm start
This should do it for you, but most attention should paid to instructions inside README.md provided by developer.
Inside package.json
edit "start" to this code:
"scripts": {
"start": "react-scripts start",

Resources