Make linking work with native source code #2172
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
God aften.
Fikk en litt kul idé om å få til linking uten å trenge å måtte kjøre opp frontend-packages. Den er kanskje litt sinnsyk, og forblir derfor draft inntil videre. Testene feiler fordi jeg ikke har lagt inn noe innsats for å få ting til å kjøre som ESM.
Man må ha litt kunnskap om hvordan package resolution og
package.json
funker, så det kommer nå. Hvis dere kan noe om det fra før av er det bare å hoppe over dette:I
package.json
er det tre (egentlig fire/fem) felter som avgjør hvor man faktisk importerer kode fra.CommonJS
-format (tenk module.exports)Når vi linker inn pakker vanligvis vil dette si at vi tar i bruk kode som ligger i
main
ogmodule
, som peker til/lib/index.js
oges/index.js
. Hva om vi bare pekte tilsrc/index.ts
istedenfor? Det funker som et skudd... ish.package.json
har også feltetpublishConfig
, som lar en gjøre endringer til enpackage.json
-fil i øyeblikket den publiseres. Det vil si at vi kan endre på verdiene tilmain
,module
ogtypes
når vi publiserer en pakke. Da kan vi peke på kompilert kode når vi ikke linker.Det finnes dessverre noen ulemper med denne fremgangsmåten:
css
-fil for "linked" og "unlinked" i hver frontend.publishConfig
ikke støtter alle feltene vi definerer der. Det avhenger litt av hvilket verktøy man bruker. Jeg vet ikke helt om yarn støtter alle våre.Jeg tror egentlig ikke at dette er noe vi har veldig lyst til å gå for. Men kanskje noen mener noe annet? Dette er blant annet en grei indikator på monorepo-ytelse.