Module not found: Can't resolve '@daml.js/..' in 'ex-bond-issuance-master\ui-js\src\pages\issuerRole'
Hey, DAMLer’s!
I am working on updating our demo and using daml codegen js for the first time. I’m definitely glad @cocreature put me on to it, it’s a really nifty tool.
However, I’m having a bit of trouble with it.
Using ex-bond-issuance as a baseline, I updated the DAML model to include our proprietary product - let’s call it OptimisProduct (including scenarios, scripts, triggers, etc.).
Once I did this, I rebuilt the bond-issuance.dar file and then ran daml codegen js. In the @daml.js folder I can see the @daml.js/bond-issuance-2.0.0/lib/DA/RefApps/Bond/OptimisProduct is generated. I cross-checked the code against the equivalent for FixedRateBond base case example and the codegen appears to have worked.
However, when I run yarn start I get the following error:
```
./src/pages/issuerRole/IssuerRole.jsModule not found: Can't resolve '@daml.js/bond-issuance-2.0.0/lib/DA/RefApps/Bond/OptimisProduct' in '...\ex-bond-issuance-master\ui-js\src\pages\issuerRole'
```
I usually see similar errors when I misspelled something, or deleted a file because I’m not using it anymore. I can see that the folder exists by clicking through the above path, but when I try to type out in visual studio my linter doesn’t pick it up as existing.
The only error I am getting in Visual Studio is the below:
Has anyone experienced an error like this when using daml codegen js? Could it be related to the error in the tsconfig.json file?
Did you run yarn install --force from the ui directory after running daml codegen js?
Thanks, @cocreature . That worked.
I had done yarn install but it said everything was up to date.
What exactly is being updated or what was failing to be updated when I didn’t include --force?
It sounds like updating the daml is a three step exercise when using codegen in your ui:
- update
.darfile - re-run
codegen - run
yarn install --force
Yes the 3 steps are correct. Note that npm makes this a bit easier than yarn. Recent versions of the Getting Started Guide walk you through the NPM workflow.
As for what yarn install --force does: If you look at your package.json you can see that the generated code is referenced via a file: URI. Yarn does not pick up changes to such dependencies itself by default. yarn install --force will circumvent any caching and force a reinstall of that dependency. There are a few nicer solutions, e.g., yarn link but those have their own issues (symlinks don’t work as a non-admin on Windows by default) so we fall back to the lowest common denominator.
