denoland / nodetodenochallenge

Take any Node project, run it with Deno, share on Twitter, earn prizes #NodeToDenoChallenge
https://deno.com/blog/node-to-deno-challenge
1 stars 0 forks source link

`guardian/dotcom-rendering` fails to access `process.env` #35

Open mxdvl opened 8 months ago

mxdvl commented 8 months ago

Running the server.js output from the Webpack build of guardian/dotcom-rendering with 48 kLoC.

Failure with output:

Warning Sloppy imports are not recommended and have a negative impact on performance.
Warning: Resolving "module" as "node:module" at file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:1:67. If you want to use a built-in Node module, add a "node:" prefix.
error: Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'host')
    at isGuardianDomain (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:28313:1534)
    at Object.95066 (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:28313:1733)
    at __webpack_require__ (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:47938:41)
    at Module.75452 (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:11048:95)
    at __webpack_require__ (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:47938:41)
    at Object.74212 (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:15661:38)
    at __webpack_require__ (file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:47938:41)
    at file:///Users/max_duval/Code/dotcom-rendering/dotcom-rendering/dist/server.js:48119:36
mxdvl commented 4 months ago

Tried this again today, the error is slighly different… we got further down the file:

$ deno run -A --unstable-sloppy-imports --unstable-bare-node-builtins dist/server.js

Warning Sloppy imports are not recommended and have a negative impact on performance.
error: Uncaught (in promise) ReferenceError: require is not defined
const external_node_async_hooks_namespaceObject = require("node:async_hooks");
                                                  ^
    at Module.89165 (file:///Users/max_duval/Code/tofu/dotcom-rendering/dist/server.js:17250:51)
    at __webpack_require__ (file:///Users/max_duval/Code/tofu/dotcom-rendering/dist/server.js:52382:42)
    at file:///Users/max_duval/Code/tofu/dotcom-rendering/dist/server.js:52546:37
    at file:///Users/max_duval/Code/tofu/dotcom-rendering/dist/server.js:52549:12

This seems to be an issue with Node’s AsyncLocalStorage, which we use for logging.