From cab08e366f6b546f2c1be2d5a52dc28ebef1186e Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 30 Jan 2026 15:04:34 -0600 Subject: [PATCH 1/2] Initialize currentEngagementURL to empty string, not location.href For use in a server-side rendered environment, it is important we don't access browser variables before `init` or `track` are called, that might not exist in Node/Bun/etc. There isn't much reason to set this variable to location.href prior to `postPageviewTrack` being called, as we won't use it until engagements are registered, in which case, we will have set the URL from the payload. This is the current error when importing (but not running) the code in Node: ``` Welcome to Node.js v25.4.0. Type ".help" for more information. > import('@plausible-analytics/tracker/plausible.js') Promise { , Symbol(async_id_symbol): 103, Symbol(trigger_async_id_symbol): 6 } > Uncaught ReferenceError: location is not defined ``` --- tracker/src/engagement.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tracker/src/engagement.js b/tracker/src/engagement.js index fcc302169e1a..a7e7d286429b 100644 --- a/tracker/src/engagement.js +++ b/tracker/src/engagement.js @@ -9,7 +9,7 @@ import { sendRequest } from './networking' var listeningOnEngagement = false var currentEngagementIgnored -var currentEngagementURL = location.href +var currentEngagementURL = '' var currentEngagementProps = {} var currentEngagementMaxScrollDepth = -1 From 31e45ae4ab8e6ba21eccc1884a1cd53e78cda8f9 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 30 Jan 2026 15:10:00 -0600 Subject: [PATCH 2/2] Set `exports` in plausible tracker package.json Since the code is not in `index.js`, we need to declare where the code should be imported from when the module is imported using modern standards in order to be importable in Node. Webpack can use the old `modules` style, but Node does not. This addresses #5879. --- tracker/npm_package/package.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tracker/npm_package/package.json b/tracker/npm_package/package.json index 588667b1490d..1139d13ff45e 100644 --- a/tracker/npm_package/package.json +++ b/tracker/npm_package/package.json @@ -15,6 +15,12 @@ "license": "MIT", "homepage": "https://plausible.io", "type": "module", + "exports": { + ".": { + "import": "./plausible.js", + "types": "./plausible.d.ts" + } + }, "module": "./plausible.js", "types": "./plausible.d.ts" }