Reputation: 2070
This is a React web app. When I run
npm start
This error occurred
> dataflow@0.1.0 start
> react-scripts start
node:internal/modules/cjs/loader:488
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tokenize' is not defined by "exports" in /Users/juliantc/Desktop/ai-studio/development/frontend/node_modules/postcss-safe-parser/node_modules/postcss/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:416:9)
at packageExportsResolve (node:internal/modules/esm/resolve:669:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/Users/juliantc/Desktop/ai- studio/development/frontend/node_modules/postcss-safe-parser/lib/safe-parser.js:1:17) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
Node.js v17.0.1
This error only occurs when I run this on this specific computer, which I do not have superuser access to. It works on other computers.
For reference, this is ./node_modules/postcss-safe-parser/node_modules/postcss/package.json
{
"name": "postcss",
"version": "8.2.6",
"description": "Tool for transforming styles with JS plugins",
"engines": {
"node": "^10 || ^12 || >=14"
},
"exports": {
".": {
"require": "./lib/postcss.js",
"import": "./lib/postcss.mjs",
"types": "./lib/postcss.d.ts"
},
"./": "./"
},
"main": "./lib/postcss.js",
"types": "./lib/postcss.d.ts",
"keywords": [
"css",
"postcss",
"rework",
"preprocessor",
"parser",
"source map",
"transform",
"manipulation",
"transpiler"
],
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
"author": "Andrey Sitnik <andrey@sitnik.ru>",
"license": "MIT",
"homepage": "https://postcss.org/",
"repository": "postcss/postcss",
"dependencies": {
"colorette": "^1.2.1",
"nanoid": "^3.1.20",
"source-map": "^0.6.1"
},
"browser": {
"./lib/terminal-highlight": false,
"colorette": false,
"fs": false
}
}
And this is what I get when I list the files in ./node_modules/postcss-safe-parser/node_modules/postcss/lib/
lgtd-lt-119-mbmt:frontend juliantc$ ls ./node_modules/postcss-safe-parser/node_modules/postcss/lib/
at-rule.d.ts css-syntax-error.d.ts input.d.ts map-generator.js postcss.d.ts processor.js rule.js tokenize.js
at-rule.js css-syntax-error.js input.js node.d.ts postcss.js result.d.ts stringifier.js warn-once.js
comment.d.ts declaration.d.ts lazy-result.d.ts node.js postcss.mjs result.js stringify.d.ts warning.d.ts
comment.js declaration.js lazy-result.js parse.d.ts previous-map.d.ts root.d.ts stringify.js warning.js
container.d.ts fromJSON.d.ts list.d.ts parse.js previous-map.js root.js symbols.js
container.js fromJSON.js list.js parser.js processor.d.ts rule.d.ts terminal-highlight.js
Upvotes: 186
Views: 227074
Reputation: 659
In my case the error was
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/logger' is not defined by "exports" in /Users/simonebracaloni/CODE/ANCCP/anccp-etl/functions/node_modules/firebase-functions/package.json
I had to chage the import from
import { log, error } from 'firebase-functions/lib/logger';
to
import { log, error } from 'firebase-functions/logger';
Upvotes: 0
Reputation: 930
For my Typescript project the problem was simply
import { renderToString } from 'react/server.js'
// instead of
import { renderToString } from 'react/server'
This compiled then crashed at runtime.
Upvotes: 0
Reputation: 682
This will most likely not help the question author, since his problem is platform specific, but it's another potential cause of this error, which might help others debugging.
Make sure you are importing dependencies from correct place. I ran into:
Error: Package subpath './dist/esm' is not defined by "exports" in /node_modules/kysely/package.json
The reason being:
import { Kysely } from 'kysely/dist/esm'
Instead of:
import { Kysely } from 'kysely'
Upvotes: 1
Reputation: 600
In my case, this issue occurred due to a version dependencies mismatch. You can simply upgrade your react and next version and try to install npm again by following this command:
npm install react@latest react-dom@latest next@latest --force
I updated my next and react versions using this command with a specific version as per my requirement like this,
npm install next@12 react@18 react-dom@18 --force
which worked for me. I hope you find it useful.
Upvotes: 0
Reputation: 1891
I was facing the similar problem with namespace.js and have solved my problem by adding the following lines
"./lib/util/namespace":"./lib/util/namespace.js"
in exports of /usr/local/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json
Final exports will look like
"exports": {
".": "./lib/environment.js",
"./cli/": "./cli/",
"./lib/": "./lib/",
"./lib/util/": "./lib/util/",
"./adapter": "./lib/adapter.js",
"./conflicter": "./lib/util/conflicter.js",
"./log": "./lib/util/log.js",
"./transform": "./lib/util/transform.js",
"./lib/util/namespace":"./lib/util/namespace.js",
"./package.json": "./package.json"
}
Upvotes: 1
Reputation: 432
i removed /node_modules folder,package-lock.json & yarn.lock file, then executed
npm i
, then npm audit fix --force
it worked completely fine
Upvotes: 2
Reputation: 1861
I'm also stuck with the same problem because I installed the latest version of Node.js.
For Linux users who use NVM to manage node
nvm uninstall <version>
now install the LTS
version
nvm install --lts
This worked for me.
OR
Try to delete Node_modules and the lock file
Delete your node_modules
folder, package-lock.json
or yarn.lock
Re-Install all the dependencies.
npm i
or
yarn
For a better understanding of how to install node, check out this blog by digital ocean https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04
Upvotes: 165
Reputation: 2639
This problem can be occur when you are trying to work with an old react repository which is developed with a lower node.js version than v17.0.1 and you are currently using v17.0.1 or a higher node version.
Delete your node_modules
folder, package-lock.json
and yarn
file (if you have one).
Force clean the entire NPM cache by using following command. While executing this command, you might get a warning, just ignore it.
npm cache clean --force //WARN using --force Recommended protections disabled.
Re-Install all the dependencies.
npm install
Upvotes: 10
Reputation: 127
I had this issue with craco and postcss. What I did to solve is
npm i -D postcss@latest
export NODE_OPTIONS=--openssl-legacy-provider
npm install
Upvotes: 8
Reputation: 78
For me, I updated the Node version to the v16.17.1
and removed and reinstall packege.json, now it is fixed
Upvotes: -1
Reputation: 23189
You don't need to roll back to older node versions.
On node.js v18 I solved it by removing the node_modules
folder and the package-lock.json
file:
rm -rf node_modules package-lock.json
...then running:
npm i
npm audit fix
My next npm start
worked just fine.
Upvotes: 10
Reputation: 579
I had the same problem 5 minutes ago, which is strange because it was working, but anyway, in my case the problem was in version 3.0 of the package "resolve-url-loader", after upgrading to version 5.0, everything has been resolved.
npm i resolve-url-loader@^5.0.0 --save-dev
If you have this package and node 17+, try to update it to the latest version, outdated versions cause problems like this.
If you hit an error in your application with Node.js 17, it’s likely that your application or a module you’re using is attempting to use an algorithm or key size which is no longer allowed by default with OpenSSL 3.0. A command-line option, , has been added to revert to the legacy provider as a temporary workaround for these tightened restrictions.ERR_OSSL_EVP_UNSUPPORTED--openssl-legacy-provider
For details about all the features in OpenSSL 3.0 please see the OpenSSL 3.0 release blog.
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
https://nodejs.org/en/blog/release/v17.0.0/#openssl-3-0
Upvotes: -1
Reputation: 1446
I don't get why @AnmolNoor wants you to uninstall version 17.
The proper way:
Make sure you have nvm
(https://github.com/nvm-sh/nvm). If you don't, I highly recommend installing it.
Check your node --version
If the version is 17, this might be the reason for the error (as it was in my case)
Run nvm install 14
. After installing is complete, it should also switch your node version to 14.
Check the version node --version
just in case. If you still see 17, run nvm use 14
Your node --version
should now be 14.
Note: Every time you close the current terminal tab, your default node version will return back to 17 unless you change this.
Next time you have to switch node version to 14, you don't have to install it again, just run nvm use 14
Upvotes: 3
Reputation: 684
Uninstalling the current Node.js and installing LTS solves the problem, but if you want to keep the currently installed version, you could use nvs add lts
to install the latest Node.js LTS, and activate it using nvs use node/<lts version>/<platform>
. The LTS version and Platform values will be provided in the first command output.
Upvotes: -1
Reputation: 551
I was receiving Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/parser' is not defined by "exports" in ...node_modules\next\node_modules\postcss\package.json
I have resolved it on node version 17.4.0 after I upgraded react, and nextjs using:
npm install react@latest react-dom@latest
npm install next@12
(https://nextjs.org/docs/upgrading)
Upvotes: 5
Reputation: 47
An update to the latest version of "react-scripts" have been worked for me! Previous "react-scripts" version was 4.0.3 and I've updated to 5.0.0. Node version is 17.0.1.
Upvotes: 1
Reputation: 149
Remove node_module & package-lock.json
then
npm install
( in install if you get error as to use --force
and --legacy-peer-deps
the command as
`npm install --legacy-peer-deps`
)
npm start
Upvotes: 1
Reputation: 447
I also get the error when using Node.js v17.0.1 (Lates Features) - I am using macOS Catalina and homebrew.
So I want to switch Node.js v17.0.1 to Node.js (LTS) -> Node.js v16.3.1
I uninstall node using homebrew with the following command:
brew uninstall node
Then I download Node LTS from https://nodejs.org/en/ and install it.
That is work for me. Thanks :)
Upvotes: 6
Reputation: 1828
FWIW, I bumped into this issue on macOS Monterey with Node 17.0.1 installed via Homebrew. Downgrading to Node 16.x worked for me.
Downgrade from Node 17.x (latest) to Node 16.x using Homebrew:
brew uninstall --ignore-dependencies node
brew install node@16
brew link node@16
Upvotes: 20
Reputation: 347
my working solution was with yarn:
/node_modules
and yarn.lock
file.yarn install
.it worked !!!
Upvotes: 33
Reputation: 79
I faced similar issue and it was due to node version v17.1.0.
I have nvm with 3 different versions of node installed. Just switched to version v14.18.1 using nvm and the issue resolved.
Upvotes: 0
Reputation: 3286
If you use yarn you can:
rm -rf node_modules yarn.lock
yarn add -D react-scripts@latest
yarn build
For npm:
rm -rf node_modules package-lock.json
npm install -D react-scripts@latest
npm install
npm run build
Upvotes: 0
Reputation: 529
After removing node_modules & package-lock.json, I ran
npm audit fix --force
& updated react-scripts to the latest available version with
npm install react-scripts@latest
Upvotes: 8
Reputation: 247
Roll back to Node 16.8.0
or (works for me) stable version 16.13.0
:
Step 1: install n
npm install -g n
Step 2: install/set node latest stable version
sudo n stable
or set 16.8.0
sudo n 16.8.0
Note, if you can't or don't want to use sudo for n, you can set environment variables for the location, eg;
export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH
Upvotes: 23
Reputation: 708
removing and reinstalling lock and node modules didn't help but npm update
worked for me
Upvotes: 20
Reputation: 701
Remove node_modules folder and .lock file and re-install your packages (yarn or npm). It worked for me with last 17.0.1 of nodejs, I can npm (or yarn) start my app again.
Upvotes: 66