Fixing the split undefined error with npm build
When attempting to run npm run build in a project that integrates Nutrient Web SDK, you may encounter a TypeError related to the split() function in pspdfkit.js or nutrient-viewer.js. This is usually triggered during the production build phase with react-scripts.
The error message will look like this:
TypeError: .../node_modules/pspdfkit/dist/pspdfkit.js: Cannot read properties of undefined (reading 'split')Or, alternatively, like this:
TypeError: .../node_modules/nutrient-sdk/viewer/dist/nutrient-viewer.js: Cannot read properties of undefined (reading 'split')Root cause
This error is commonly caused when the SDK or the surrounding project environment attempts to operate on an undefined value during the build process. For example, the SDK may be expecting a configuration string like a URL or a path, but it wasn’t provided, so it received undefined instead.
Additional signs you may observe:
- A warning about
caniuse-litebeing outdated - Use of an outdated SDK version
- Compatibility issues between Node.js, TypeScript, and the SDK
Resolution steps
To fix this error and complete the build successfully, follow the steps below.
1. Check for undefined values
Examine the configuration or integration points to ensure you’re providing all the required parameters. Additionally, inspect the places where you may be passing a null or undefined value, especially any of the following:
documentURL or file path- Container ID or element
- Options passed to
NutrientViewer.load()
Doublecheck any dynamic variables passed into the SDK. Ensure they’re properly initialized and that they’re valid strings.
2. Update to the latest SDK
Ensure you’re using the most up-to-date Web SDK version.
3. Rebuild the project
After making the changes above, run the build again:
npm run buildIsolate the issue
If you’re still running into the error after trying all steps above, test the integration inside one of our out-of-the-box examples to rule out environment-specific issues.