Giter Club home page Giter Club logo

Comments (11)

FredKSchott avatar FredKSchott commented on July 22, 2024 2

from snowpack.

FredKSchott avatar FredKSchott commented on July 22, 2024 1

Tracking a fix for this here: #6

from snowpack.

lastmjs avatar lastmjs commented on July 22, 2024

You could even just try it on a project with this one dependency: https://www.npmjs.com/package/web3. That's all I really want to get working, it's being difficult with my other build processes

from snowpack.

FredKSchott avatar FredKSchott commented on July 22, 2024

Okay so good news: so I was able to reproduce this in a project with web3, and created #5 as a result of a bug found.

The bad news is that web3 relies on some '.node' C++ compiled files that work on Node.js but would never run natively on the web. The fact that it never finishes looks like it may be a bug in either Rollup or the CJS plugin that we use for Rollup. We should definitely warn instead of hanging.

from snowpack.

lastmjs avatar lastmjs commented on July 22, 2024

Nice. This is the trick part about these kinds of build tools, you have to bundle in browser versions of the dependencies. For example, there are some projects called http-browserify, http-browserify, etc that offer browser compatible versions of the built-in node modules...unless I'm not understanding? If not, could Wasm binaries of those modules be made to ship up to the browser?

from snowpack.

lastmjs avatar lastmjs commented on July 22, 2024

Web3 also has UMD bundles in its dist folder, I believe most of its direct dependencies do as well. If you rollup and point to the UMD build as the entry point, I wonder how that would work. I'll try it in the next couple days and report.

from snowpack.

FredKSchott avatar FredKSchott commented on July 22, 2024

I'd like @pika/web to stay focused on being an ESM installer, but no reason we couldn't have some sort sort of secondary opt-in UMD support (stupid example: "@pika/web": { "umdDependencies": [ ... ] })

from snowpack.

zaygraveyard avatar zaygraveyard commented on July 22, 2024

This also happens for preact-compat
I get the following error and then @pika/web continues indefinitely:

Error when using sourcemap for reporting an error: Can't resolve original location of error.
Error: 'h' is not exported by node_modules/preact/dist/preact.umd.js
    at error (/path/node_modules/rollup/dist/rollup.js:9435:30)
    at Module.error (/path/node_modules/rollup/dist/rollup.js:13407:9)
    at handleMissingExport (/path/node_modules/rollup/dist/rollup.js:13327:21)
    at Module.traceVariable (/path/node_modules/rollup/dist/rollup.js:13712:17)
    at ModuleScope.findVariable (/path/node_modules/rollup/dist/rollup.js:12422:39)
    at Identifier$1.bind (/path/node_modules/rollup/dist/rollup.js:8348:40)
    at CallExpression$1.bind (/path/node_modules/rollup/dist/rollup.js:7977:23)
    at CallExpression$1.bind (/path/node_modules/rollup/dist/rollup.js:10377:15)
    at MemberExpression.bind (/path/node_modules/rollup/dist/rollup.js:7977:23)
    at MemberExpression.bind (/path/node_modules/rollup/dist/rollup.js:11358:19)

from snowpack.

zaygraveyard avatar zaygraveyard commented on July 22, 2024

Solved the problem by adding the following to "@pika/web" package.json field

    "namedExports": {
      "node_modules/preact/dist/preact.umd.js": [
        "Component",
        "cloneElement",
        "createElement",
        "createRef",
        "h",
        "options",
        "render",
        "rerender"
      ],
      "node_modules/preact-context/dist/context.min.js": [
        "createContext"
      ]
    },

Thank you for this amazing tool πŸ‘

from snowpack.

FredKSchott avatar FredKSchott commented on July 22, 2024

lol did I add support for that and never document it??? πŸ€¦β€β™‚ @zaygraveyard Glad it worked for you, adding some documetation to the README now!

from snowpack.

FredKSchott avatar FredKSchott commented on July 22, 2024

(You shouldn't see any issues with Preact tho... that's not good. Maybe "module" should take precedence over "browser" again now that we have support for deep-requesting files inside of packages)

from snowpack.

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.