Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

436
Vistas
¿Las dependencias externas están agrupadas incorrectamente en rollup.js?

Estoy tratando de crear 2 compilaciones separadas usando rollup.js : application.js y dependencies.js , que contienen el código de mi aplicación y el código de biblioteca común ( react , react-dom , etc.), respectivamente.

Los documentos dicen que debería poder simplemente usar externals: ['react', 'react-dom'] y hacer que funcione, pero cuando inspecciono el paquete resultante, termino teniendo el cuerpo completo de ambas librerías incluidas. Aquí está mi ejemplo app.config.js , al que llamo usando rollup -c app.config.js :

¿Qué estoy haciendo mal?

 import babel from 'rollup-plugin-babel' import commonjs from 'rollup-plugin-commonjs' import nodeResolve from 'rollup-plugin-node-resolve' import replace from 'rollup-plugin-replace' import uglify from 'rollup-plugin-uglify' import { keys } from 'lodash' const PRODUCTION = (process.env.NODE_ENV || 'development') === 'production' const ENVIRONMENT = JSON.stringify(PRODUCTION ? 'production' : 'development') const EXTERNALS = { 'react': 'React', 'react-dom': 'ReactDOM', } const plugins = [ replace({ 'process.env.NODE_ENV': ENVIRONMENT }), babel({ babelrc: false, exclude: ['node_modules/**', '**/*.json'], presets: ['es2015-rollup', 'react'], }), commonjs({ ignoreGlobal: false, include: ['node_modules/**'], }), nodeResolve({ browser: true, jsnext: true, main: true, preferBuiltins: false, }), ] if (PRODUCTION) { plugins.push(uglify()) } export default { entry: 'source/application.js', exports: 'none', external: keys(EXTERNALS), globals: EXTERNALS, plugins, targets: [{ dest: 'build/js/application.js', format: 'iife', sourceMap: !PRODUCTION, sourceMapFile: '/js/application.js', }], treeshake: true, }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La respuesta que encontré fue incluir un argumento adicional a la llamada del complemento rollup-plugin-node-resolve , de la siguiente manera:

 nodeResolve({ ignoreGlobal: false, include: ['node_modules/**'], skip: keys(EXTERNALS), // <<-- skip: ['react', 'react-dom'] }),

Aparentemente, esto es necesario, de modo que el rollup-plugin-node-resolve sepa skip la importación de estas dependencias externas cuando otras bibliotecas incluidas en node_modules las importen.

por ejemplo: import someReactLib from 'some-react-lib' que usa import React from 'react' . Sin el lenguaje de skip , esto parece resultar en la incorporación de React al paquete general.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda