Skip to content
This repository has been archived by the owner on Mar 11, 2024. It is now read-only.

Can't Find Contract - Symlink Doesn't Work on Windows! #68

Closed
rori4 opened this issue Sep 12, 2018 · 6 comments
Closed

Can't Find Contract - Symlink Doesn't Work on Windows! #68

rori4 opened this issue Sep 12, 2018 · 6 comments

Comments

@rori4
Copy link

rori4 commented Sep 12, 2018

Hello,
after the recent commits the react box is not working on windows.

After compiling and running 'npm run start' from the client folder I get the following error:
(This was not mentioned in the official documentation but in the repository of the new contributor - https://github.com/adrianmcli/truffle-react )

After I ran the client i got this error:

Failed to compile ./src/App.js Module not found: Can't resolve './contracts/SimpleStorage.json' in 'F:\reactBox\client\src'

I understand that the issue is the creation of a symlink and so I tried running the 'npm run link-contracts:win32' with no luck.

It gave me an error.

I can confirm that this commit is working properly -> https://github.com/truffle-box/react-box/tree/9fb7ed6c0253c71b574bf160072bc7eb9fdd0336

How can I fix this? And if it can't be fixed is there a way to use truffle unbox to deploy the above commit directly?

@rori4
Copy link
Author

rori4 commented Sep 12, 2018

OK... after more than 2 hours of digging around here are the issues of the latest commit and how to fix them:

  • On Windows symlink does not work properly so we get an error module not found
    If you are on windows you need run npm run link-contracts:win32 before running npm run start. However, there is an error in the command in this commit. Replace the command with this:
    "link-contracts:win32": "cd src && mklink /D contracts ..\\..\\build\\contracts"
    (the /D was \\D)

  • We have a missing dependency bignumber.js
    Go inside the client folder and run npm i --production bignumber.js or just add "bignumber.js": "^7.2.1" to the dependencies inside package.json

  • The npm run start does not work
    The command should be ran from the client folder. The README.md file is out of date.

Hope this helps someone. I don't know what was so bad with the previous commit that we had to change the whole structure.

@TamanShergill
Copy link

Hi Rori4,

I am trying the same as npm run "link-contracts:win32": "cd src && mklink /D contracts ..\..\build\contracts"
or npm run link-contracts:win32: cd src && mklink /D contracts ..\..\build\contracts

It still doesn't work. Do you mean to change the command in some script?

@benjamistan
Copy link

In cmd (Run as administrator), go to your /client/src file and simply run
mklink /D contracts ..\..\build\contracts

@Adrianf23
Copy link

@benjamistan this worked for me! Thanks

@michaelseemichaeldo
Copy link

@benjamistan when I enter your command it says "Cannot create a file when that file already exists."

@adrianmcli
Copy link
Contributor

Symlink should no longer be required!

This is because we are now using the contracts_build_directory setting here:

contracts_build_directory: path.join(__dirname, "client/src/contracts")

This ensures that the build artifacts are sent to the contracts folder inside the src folder in the React app.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants