Cómo arreglar el error de la webpack "versión" es un argumento requerido en GCP cloudbuild
I create a bug problema en la webpack repo, pero me temo que estará cerrado ya que piden una reproducción mínima, que no puedo producir.
Uno de mis pasos de nubes es:
- name: node:$_NODE_VERSION
entrypoint: npm
args: ['run', 'build:ci'] # with NODE_ENV=production. Skips BundleAnalyzerPlugin
dir: "v3/client/"
waitFor: ['css-built', 'secret-available']
id: 'client-built'
substitutions:
# Getting errors related to the client/ canvas package using node v15
# command failed sh -c node-pre-gyp install --fallback-to-build
# No package 'pangocairo' found
_NODE_VERSION: "14"
Se activa una webpack 4 construir como se define a continuación:
"scripts": {
"build:ci": "NODE_ENV=production npm run build -- --env ci",
}
Cuando Cloudbuild intenta correr el paso, siempre falla con el siguiente error
Step #4 - "client-built": (node:29) UnhandledPromiseRejectionWarning: Error: "version" is a required argument.
Step #4 - "client-built": at Object.getArg (/workspace/v3/client/node_modules/webpack-sources/node_modules/source-map/lib/util.js:24:11)
Step #4 - "client-built": at new BasicSourceMapConsumer (/workspace/v3/client/node_modules/webpack-sources/node_modules/source-map/lib/source-map-consumer.js:294:22)
Step #4 - "client-built": at new SourceMapConsumer (/workspace/v3/client/node_modules/webpack-sources/node_modules/source-map/lib/source-map-consumer.js:22:7)
Step #4 - "client-built": at SourceMapSource.node (/workspace/v3/client/node_modules/webpack-sources/lib/SourceMapSource.js:32:62)
Step #4 - "client-built": at SourceMapSource.proto.sourceAndMap (/workspace/v3/client/node_modules/webpack-sources/lib/SourceAndMapMixin.js:29:18)
Step #4 - "client-built": at getTaskForFile (/workspace/v3/client/node_modules/webpack/lib/SourceMapDevToolPlugin.js:65:30)
Step #4 - "client-built": at /workspace/v3/client/node_modules/webpack/lib/SourceMapDevToolPlugin.js:215:20
Step #4 - "client-built": at Array.forEach ()
Step #4 - "client-built": at /workspace/v3/client/node_modules/webpack/lib/SourceMapDevToolPlugin.js:186:12
Step #4 - "client-built": at SyncHook.eval (eval at create (/workspace/v3/client/node_modules/tapable/lib/HookCodeFactory.js:1:1), :12:1)
Step #4 - "client-built": at SyncHook.lazyCompileHook (/workspace/v3/client/node_modules/tapable/lib/Hook.js:154:20)
Step #4 - "client-built": at /workspace/v3/client/node_modules/webpack/lib/Compilation.js:1413:42
Step #4 - "client-built": at eval (eval at create (/workspace/v3/client/node_modules/tapable/lib/HookCodeFactory.js:1:1), :19:1)
Step #4 - "client-built": (Use `node --trace-warnings ...` to show where the warning was created)
Step #4 - "client-built": (node:29) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
Step #4 - "client-built": (node:29) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Este error es muy oscuro para mí, y sólo sucede en el cloudbuild, que es muy difícil de depurar (no se puede ssh en el medio ambiente y depurar cosas por mí mismo).
Parece tener algo que ver con la fuente-mapa
Aquí están las partes de mi confidente mencionando mapas fuente
export default {
mode: "production",
devtool: "source-map",
optimization: {
minimizer: [
new TerserPlugin({
sourceMap: true, // Must be set to true if using source-maps in production
terserOptions: {
compress: {
drop_console: true,
},
output: {
comments: false,
},
},
}),
]
},
module: {
rules: [{
test: /\.css$/i,
use: [
{
loader: "css-loader",
options: {
importLoaders: 1,
modules: false,
sourceMap: true,
},
},
],
}, {
// add source-map support
enforce: "pre",
test: /\.js$/,
exclude: /node_modules/,
loader: "source-map-loader",
}],
}
};
¿Alguna idea de qué podría tratar de depurar esto?
EDIT: después de burlar el config de la webpack desde la última exitosa construcción de cloudbuild, noté este cambio:
resolve: {
- extensions: [".ts", ".tsx", ".js", ".jsx"],
+ // .mjs needed from @apollo/client v3.3.0
+ extensions: [".mjs", ".ts", ".tsx", ".js", ".jsx"],
},
Pero webpack es compatible con fuentemap para mjs desde 2018/08Supongo que esto es irrelevante.
El único otro cambio es usar el node:14
imagen docker en lugar del maestro, ya que nodo 15 causa errores en npm instalación desde que añadí canvas
a mi lista de dependencias para pruebas de jest.
EDIT 2: desactivar los mapas fuente para mis obras de construcción de producción. Pero eso será más difícil de depurar los problemas de producción a partir de ahora:(
Pregunta hecha hace 3 años, 4 meses, 28 días - Por syntaxsorcerer
3 Respuestas:
-
Me enfrenté a w / el mismo problema, pero w / webpack 5. Y también uso el cliente Apollo v3. Una diferencia: estaba en gitlab ci. La causa raíz estaba en el uso
docker:dind
. Muévetedind
para usar Docker enganchado fijar el problema para míRespondida el Dec 18, 2020 a las 11:01 - por syntaxsculptor
Votos positivos: 0 | Votos negativos: 0 -
El error que estás viendo parece estar relacionado con la generación o uso de mapas de origen en Webpack durante el proceso de construcción en Cloud Build.
Aquí hay algunas sugerencias para ayudarte a depurar este problema:
- Comprobar configuración de Webpack:
- Revisar versiones:
- Desactivar mapas de origen:
- Consultar la documentación de Webpack:
- Verificar la configuración de Cloud Build:
Si después de realizar estas verificaciones aún no resuelves el problema, considera crear un issue más detallado o una pregunta en los foros de soporte de Webpack para obtener ayuda adicional de la comunidad de desarrolladores.
Respondida el Dec 19, 2020 a las 11:00 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Posibles soluciones:
1. Actualiza la versión de webpack:
Verifica que estás utilizando la última versión de webpack. Las versiones anteriores pueden tener errores o incompatibilidades que pueden causar este problema.
2. Verifica la configuración de la fuente de mapa:
Asegúrate de que la configuración de la fuente de mapa en tu archivo webpack.config.js sea correcta. Específicamente, verifica los siguientes ajustes:
devtool
: Debe establecerse en'source-map'
para generar archivos de fuente de mapa.minimizer.terserOptions.sourceMap
: Debe establecerse entrue
para generar mapas de fuente para código minimizado.module.rules[].sourceMaps
: Establece esto entrue
para habilitar los mapas de fuente para los cargadores específicos.3. Verifica las dependencias:
Asegúrate de que todas las dependencias necesarias para generar mapas de fuente estén instaladas y actualizadas. Esto incluye:
source-map
webpack-sources
webpack-dev-middleware
(si estás utilizando un servidor de desarrollo)4. Utiliza la depuración remota:
Si es posible, configura la depuración remota para tu entorno de CloudBuild. Esto te permitirá conectarte al proceso en ejecución y depurar el problema más fácilmente.
5. Busca problemas conocidos:
Busca problemas conocidos o avisos relacionados con la generación de mapas de fuente en webpack y CloudBuild. Puede haber problemas específicos que afecten a tu caso.
6. Simplifica tu configuración:
Crea un proyecto de webpack mínimo que reproduzca el problema. Elimina cualquier configuración o dependencia innecesaria para aislar el problema. Esto puede ayudarte a identificar la causa raíz más rápido.
7. Contacta al soporte de webpack:
Si ninguna de las soluciones anteriores funciona, considera ponerte en contacto con el soporte de webpack. Pueden proporcionar ayuda adicional o información sobre posibles problemas.
Respondida el Dec 19, 2020 a las 11:14 - por Gemini
Votos positivos: 0 | Votos negativos: 0