Cómo crear correctamente un módulo Node.js usando webpack

2

He estado luchando durante los últimos días para que esto funcione correctamente.

Tengo dos clases en dos archivos js diferentes:

archivo src / a.js:

export default class A {}

archivo src / b.js:

export default class B {}

y tengo el siguiente archivo de punto de entrada:

archivo src / index.js:

import A from './a.js'
import B from './b.js'

export { A, B }

// I don't know what else should go in here

Lo construyo usando esta configuración de paquete web:

archivo webpack.config.js:

module.exports = {
  input: 'src/index.js',
  output: {
    path: 'dist/',
    filename: 'my-lib.js',
    libraryTarget: 'commonjs-module',
  }
}

Y constrúyalo con el comando webpack.

Otra cosa a tener en cuenta es el package.json:

archivo package.json:

{
  "name": "my-library",
  "module": "dist/my-lib.js",
  "main": "dist/my-lib.js"
}

El objetivo es importar mi módulo de nodo en otro proyecto después de instalarlo:

$ npm install --save my-module

Y utilícelo así:

import {A,B} from 'my-module' 

const a = new A()
const b = new B()

¿Cómo creo un archivo index.js de este tipo y cómo debería verse mi archivo webpack.config.js para poder hacer esto?

1
-2

Por lo que parece, tienes dos proyectos. En el proyecto 1 está creando una biblioteca.

Para crear bibliotecas, consulte https://webpack.js.org/guides/author-libraries/

pero básicamente necesitas exportar esas clases para que las use el otro proyecto

import A from './a.js'
import B from './b.js'

module.exports = {
  A,
  B
}

Luego, en el segundo proyecto puedes importar esos módulos

import {A,B} from 'my-module' 
5
  • ¿Qué pasa con la configuración del paquete web? esto no funciona, obtengo la exportación A no se encontró en 'my-module' 18/06/20 a las 3:28
  • No ha proporcionado una configuración en su pregunta. Pruebe esta pregunta: stackoverflow.com/questions/41359740/… y vea el repositorio al que se hace referencia en la respuesta github.com/UsulPro/libpack 18 de junio de 2020 a las 3:45
  • Bueno, eso es exactamente lo que estoy pidiendo: ¿cuál es una configuración de paquete web válida para producir un módulo que pueda usar así? 18 de junio de 2020 a las 4:38
  • Este enlace proporciona un ejemplo de webpack.js.org/guides/author-libraries 18/06/20 a las 16:21
  • No funciona, es como el ejemplo del OP. 19/06/20 a las 17:20