react-render icon indicating copy to clipboard operation
react-render copied to clipboard

decache dependency breaks webpack packaging

Open mikelambert opened this issue 8 years ago • 1 comments

I might be an unusual case...but I am using webpack to pack my JS builds into a single large file for packaging up to the server. Unfortunately, decache does things like require.find = which break webpack's attempt to rework require statements. This means that importing decache will generate a broken executable that fails at load-time:

undefined:4
!(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()).find = function (moduleName) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ReferenceError: Invalid left-hand side in assignment
    at Object.<anonymous> (/Users/username/project/dist/js-server/renderServer.js:5875:1)
    at __webpack_require__ (/Users/username/project/dist/js-server/renderServer.js:20:30)
    at eval (webpack:///./node_server/~/react-render/lib/Component.js?:3:15)
    at Object.<anonymous> (/Users/username/project/dist/js-server/renderServer.js:8663:1)
    at __webpack_require__ (/Users/username/project/dist/js-server/renderServer.js:20:30)
    at eval (webpack:///./node_server/~/react-render/lib/index.js?:2:17)
    at Object.<anonymous> (/Users/username/project/dist/js-server/renderServer.js:3894:1)
    at __webpack_require__ (/Users/username/project/dist/js-server/renderServer.js:20:30)
    at eval (webpack:///./node_server/renderServer.js?:11:20)
    at Object.<anonymous> (/Users/username/project/dist/js-server/renderServer.js:9264:1)
Mikes-Mac:server lambert$ node dist/js-server/renderServer.js

Maybe the answer is a simple: "don't use webpack on react-render" code, so I may try to go back to unpackaged builds (I think it was due to a GAE file-count limitation which may no longer apply...) and see if I can't get things working again. But I wanted to list this bug.

In the meantime I'm just re-pointing at 1.1.0 which will keep things working for me.

mikelambert avatar Jun 14 '17 09:06 mikelambert

From memory, the decache package just manipulates the require.cache object. So we could probably just re-implement some of its functionality.

Your use-case is a tad odd, but I generally prefer to avoid code that can't be statically analyzed, so I don't mind having a poke around.

markfinger avatar Jun 14 '17 22:06 markfinger