knockout / tko

🥊 Technical Knockout – The Monorepo for Knockout.js (4.0+)
http://www.tko.io
Other
273 stars 34 forks source link

TypeError: Cannot set properties of undefined (setting 'ko') #159

Open crystalfp opened 2 years ago

crystalfp commented 2 years ago

Still struggling to load tko in an ES module.

I have installed @tko/build.reference. Then in my module I import it this way:

import * as ko from "./node_modules/@tko/build.reference/dist/build.reference.js";

But Chrome on Windows answers with:

Uncaught TypeError: Cannot set properties of undefined (setting 'ko')
    at build.reference.js:10
    at build.reference.js:11

The same happens if I load build.reference.es6.js

Anyway, if you edit the file (build.reference*.js) and at line 10 change global into globalThis the error disappears.

Done this dirty fix, and overcoming some Typescript peculiarity, seems TKO works.

Thanks for continued support to this wonderful library! mario

crystalfp commented 2 years ago

The real problem is that both typeof exports and typeof module are undefined, so I cannot import the library this way as expected: import tko from "..../build.reference.es6.js"