Giter VIP home page Giter VIP logo

Comments (6)

juancampa avatar juancampa commented on May 27, 2024 1

I'm also interested in targeting node. Another difference that comes to mind is window vs global as the global object. Not sure if that's builtin or not

from fastpack.

mrvicadai avatar mrvicadai commented on May 27, 2024 1

Hi @zindel thanks for the reply! I think you're correct that (1) and (2) are preventing node environment from working. Not necessarily (3) though since the application might need different configuration profiles depending on the environment.

@juancampa also made a good point that global is the "Pervasive" variable in Node, as well as __dirname and __filename as seen here.

from fastpack.

zindel avatar zindel commented on May 27, 2024

Hi, @mrvicadai. Thanks for the request! Unfortunately, it is impossible in the fastpack at the moment. We've been targeting browsers first. There are some builtin (not pluggable) features which prevent an easy addition of the node target at the moment:

  1. Fastpack considers the browser field.
  2. Requiring fs, path and other builtin Node.js packages leads to an error with the suggestion of the browser-friendly mocks
  3. process.env.NODE_ENV is replaced across the codebase with the constant (development or production) as well as non-matched if/ternary branches are pruned.

If I understand the feature request correctly, for the node target you definitely don't want (1). (2) should leave require statements intact. What about (3)? Is it desired behaviour or it should be skipped as well? Is there anything else specific about the node target?

from fastpack.

zindel avatar zindel commented on May 27, 2024

@juancampa @mrvicadai could you suggest a reasonably simple (but still with some dependencies) app we could use for testing?

from fastpack.

mrvicadai avatar mrvicadai commented on May 27, 2024

@zindel I was looking at the source tree of the parcel bundler and found some integration test cases that might just serve as SSCCE for this:

In terms of real world example, I can think of this one as reasonably small, but very frequently used node package: https://github.com/isaacs/rimraf/blob/master/rimraf.js

from fastpack.

MoOx avatar MoOx commented on May 27, 2024

Also what could be interesting for (2) is that we have a way to ignore some require() to be considered. See https://arunoda.me/blog/ssr-and-server-only-modules for an example. Webpack have its IgnorePlugin for this purpose.

from fastpack.

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.