#491·uncss

Error loading relative .js files

Author: ethanielCreated Nov 15, 2022Updated Nov 15, 2022

I have a very simple setup which loads a remote website:


var uncss = require('uncss');
const fs = require('fs');

var files   = [
'https://tm30.io/?raw_css=1',
];


uncss(files,  function (error, output) {


    fs.writeFile('./final_css.css', output, error =>
    {
        if (error)
        {
            console.log('Error creating file:', error);
            return
        }
        console.log('./final_css.css', 'file saved');
    });


});

However, I'm getting a ENOENT: no such file or directory error:

Error: Could not load script: "https://tm30.io/include/min/?g=js&v=5"
    at onErrorWrapped (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js:38:19)
    at Object.check (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js:72:23)
    at /Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js:83:27
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Error: ENOENT: no such file or directory, open '/include/min/?g=js&v=5'
    at Object.openSync (node:fs:599:3)
    at Object.readFileSync (node:fs:467:35)
    at /Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/uncss/src/jsdom.js:53:39
    at new Promise (<anonymous>)
    at CustomResourcesLoader.fetch (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/uncss/src/jsdom.js:51:40)
    at PerDocumentResourceLoader.fetch (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js:17:42)
    at HTMLScriptElementImpl._fetchExternalScript (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js:93:30)
    at HTMLScriptElementImpl._eval (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js:160:12)
    at HTMLScriptElementImpl._poppedOffStackOfOpenElements (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js:125:10)
    at JSDOMParse5Adapter.OpenElementStack.pop (/Users/ark/Dropbox/projects/tm30/include/coverage/node_modules/jsdom/lib/jsdom/browser/parser/html.js:45:16) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/include/min/?g=js&v=5'
}

It looks like jsdom is being called incorrectly and leads to it searching for the javascript file locally. Is there a way to fix this?