En un React ProjectA, quiero importar y usar un ./src/components/package/MyComponent de React projectB.
ProjectB se compila con éxito, sin ningún error. En el archivo ProjectB index.js he exportado el componente
import ReactDOM from "react-dom"; import App from './App'; import "./app.css"; export { default as MyComponent } from './components/package/MyComponent'; ReactDOM.render(<App />, document.getElementById("root"));En el archivo PojectA package.json, he importado el módulo projectB
"dependencies": { "@somescope/projectB": "file:../projectB", "axios": "^0.19.2", "date-fns": "^2.10.0", "interweave": "^12.5.0", "lodash": "^4.17.15", "material-icons": "^0.3.1", "react": "^16.8.0", "react-dom": "^16.8.0", "react-grid-system": "^6.2.4", "react-intersection-observer": "^8.26.2", "react-scripts": "3.2.0" },Ejecuté "npm install", "npm install @somescope/projectB" y "npm install --save ../projectB", para instalar el módulo projectB en projectA. Después de ejecutar estos comandos, puedo ver que projectB está presente en la carpeta projectA/node_modules.
Pero cuando trato de importar y usar MyComponent :
import {MyComponent} from "@somescope/projectB";y ejecute el comando "npm start", está dando el siguiente error en la consola:
Module not found: Can't resolve '@somescope/projectB'¿Puede alguien ayudarme, qué estoy haciendo mal y cómo resolver este error?
export { default as MyComponent } from './components/package/MyComponent';Esa línea parece que hiciste una exportación predeterminada. Si ese es el caso, para importar ese componente necesitaría hacer esto:
import MyComponent from "@somescope/projectB"; Eliminé el {} ya que podría ser una exportación predeterminada.