GithubHelp home page GithubHelp logo

Comments (10)

thitemple avatar thitemple commented on June 3, 2024 1

I can try and take a look at it later tonight for sure

from fable-react-native.

alfonsogarciacaro avatar alfonsogarciacaro commented on June 3, 2024

Hi @thitemple! On a first look it seems you need to import the default member:

// JS: Note this is importing the default member, you can give it any name
import MapboxGL from '@mapbox/react-native-mapbox-gl'

// In F# becomes...
ofImport "default" "@mapbox/react-native-mapbox-gl" ...


// JS: On the other hand, if you're importing a member you do need to use the proper name. Note the braces.
import { MapboxGL } from '@mapbox/react-native-mapbox-gl'

// In F# becomes...
ofImport "MapboxGL" "@mapbox/react-native-mapbox-gl" ...

More info here. This is a common source of confusion, maybe we need to change the importing mechanism but I'm not sure what would be the best solution. Unfortunately we cannot type check JS imports from F#/Fable.

About the build script, it's been a while since I haven't done anything with react-native so I'm not sure. Maybe @forki or @et1975 can help?

from fable-react-native.

thitemple avatar thitemple commented on June 3, 2024

One thing I'm seeing is that sometimes (and I'm using a clone of the Nightwatch template) when I change the Styles.fs file, fable does not trigger a compilation, I have to change some other file like Home.fs for that to happen.

from fable-react-native.

forki avatar forki commented on June 3, 2024

from fable-react-native.

et1975 avatar et1975 commented on June 3, 2024

change the Styles.fs file, fable does not trigger a compilation

Used to be cool to inline the styles for some reason, fable splitter doesn't seem to notice if all you change is inlined function. Just remove any inline you see and the watch should start recompiling on save.

from fable-react-native.

forki avatar forki commented on June 3, 2024

from fable-react-native.

thitemple avatar thitemple commented on June 3, 2024

@forki As you wish SAFE-Stack/SAFE-Nightwatch#60

Now, I don't understand why does that fix the issue. Could you explain it to me, please? Or point me to something I can read about it?

from fable-react-native.

forki avatar forki commented on June 3, 2024

from fable-react-native.

alfonsogarciacaro avatar alfonsogarciacaro commented on June 3, 2024

Sorry I didn't check this issue. Inlining is for some optimizations (like creating the styles object at compile time when possible instead of building it at runtime). fable-loader (webpack) marks files importing an inline function as dependencies so they get recompiled if you change the function. I think fable-splitter doesn't do it yet. If you want you can open an issue in Fable repo for it... or better yet send a WIP PR and we do it together!

from fable-react-native.

alfonsogarciacaro avatar alfonsogarciacaro commented on June 3, 2024

Sorry! I was wrong, I just remembered we're not adding dependencies in fable-loader anymore (reference: fable-compiler/Fable#1241). This is done on the .NET side of Fable now. If your project is using a recent Fable version, I guess the problem may be that fable-splitter doesn't get to watch the files containing the inline functions, so editing that file doesn't trigger a recompilation.

I need to look better into this, but maybe changing compiledPaths with projectFiles in this line may help.

from fable-react-native.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.