Recientemente intenté crear un nuevo paquete npm. En mis importaciones, decía que el module has no exports . He exportado mi componente en index.js dentro de la carpeta dist. Esta es la estructura de mi proyecto.
- dist - components - MyComponent.tsx - index.js package.json Mi index.js antes de compilar
import MyComponent from "./components/MyComponent"; export {MyComponent} Mi package.json
{ "name": "my-test-npm", "homepage": "https://github.com/ganinw13120/my-test-npm", "main": "dist/index.js", "module": "dist/index.js", "bin": "dist/index.js", "version": "0.1.13", "dependencies": { "@babel/polyfill": "^7.12.1", "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^11.2.7", "@testing-library/user-event": "^12.8.3", "@types/jest": "^26.0.24", "@types/node": "^12.20.37", "@types/react": "^17.0.37", "@types/react-dom": "^17.0.11", "@types/uuid": "^8.3.3", "bignumber.js": "^9.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3", "styled-components": "^5.3.3", "typescript": "^4.5.3", "uuid": "^8.3.2", "web-vitals": "^1.1.2" }, "scripts": { "start": "react-scripts start", "build": "rm -rf dist && NODE_ENV=production babel src/lib --out-dir dist --copy-files", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "@babel/cli": "^7.16.8", "@babel/core": "^7.16.7", "@babel/preset-env": "^7.16.8", "@types/styled-components": "^5.1.17" }, "files": [ "dist", "package.json" ] } En mi error, también dijo que Field 'browser' doesn't contain a valid alias configuration luego mi ruta de componente en la carpeta dist . Parece que no puede encontrar mi componente en la carpeta dist, que ya está incluida.
Estoy enfrentando el problema similar recientemente. Verifico la configuración de mi proyecto y su configuración, puede intentar agregar la configuración en el código fuente del paquete npm package.json :
"type": "module",lo que soy importó el componente del paquete público npm que creé así:
import { ResponseHandler } from "js-wheel/dist/index"; y exportar en el index.ts fuente del paquete index.ts de esta manera:
import {ResponseHandler} from "./net/rest/ResponseHandler"; export { ResponseHandler }Tardo días en solucionar este problema y finalmente funciona.