paquete web: bien en MacOS, errores del cargador en linux

Tengo algunos problemas con el paquete web / raw-loader / sass-sync-loader. En mi máquina local, las cosas funcionan bien. Sin embargo, en mi servidor linux CI, el webpack falla.

¿Puede alguien darme un indicador de cómo comenzar a diagnosticar qué está pasando? No estoy muy seguro de por dónde empezar.

Aquí está la salida del paquete web en linux:

Hash: 314a28b414704badd07b Version: webpack 1.4.15 Time: 7350ms Asset Size Chunks Chunk Names main.js 1648360 0 [emitted] main main.css 138069 0 [emitted] main + 595 hidden modules ERROR in ./~/raw-loader!./~/autoprefixer-loader !./node_loaders/sass-sync-loader.js?sync&outputStyle=compact& includePaths[]=/home/u65/src/repo/desktop-prototype/.generated/design-assets& includePaths[]=/home/u65/src/repo/desktop-prototype/.generated/design-properties& includePaths[]=/home/u65/src/repo/desktop-prototype/app!./app/index.scss Module build failed: @ ./app/index.scss 4:14-564  ERROR in ./app/index.scss Module build failed: Error: Didn't get a result from child compiler at Object. (/home/u65/src/repo/desktop-prototype/ node_modules/extract-text-webpack-plugin/loader.js:90:22) at Tapable. (/home/u65/src/repo/desktop-prototype/node_modules/webpack/lib/Compiler.js:210:10) at /home/u65/src/repo/desktop-prototype/node_modules/webpack/lib/Compiler.js:397:12 at Tapable.next (/home/u65/src/repo/desktop-prototype/node_modules/webpack/node_modules/tapable/lib/Tapable.js:69:11) at Object. (/home/u65/src/repo/desktop-prototype/node_modules/extract-text-webpack-plugin/loader.js:77:5) at Tapable.next (/home/u65/src/repo/desktop-prototype/node_modules/webpack/node_modules/tapable/lib/Tapable.js:71:37) at CachePlugin. (/home/u65/src/repo/desktop-prototype/node_modules/webpack/lib/CachePlugin.js:40:4) at Tapable.applyPluginsAsync (/home/u65/src/repo/desktop-prototype/node_modules/webpack/node_modules/tapable/lib/Tapable.js:73:13) at Tapable. (/home/u65/src/repo/desktop-prototype/node_modules/webpack/lib/Compiler.js:394:9) at Tapable. (/home/u65/src/repo/desktop-prototype/node_modules/webpack/lib/Comstacktion.js:534:13)  ERROR in ./~/raw-loader!./~/autoprefixer-loader! ./node_loaders/sass-sync-loader.js?sync&outputStyle=compact&includePaths[]= /home/u65/src/repo/desktop-prototype/.generated/designassets& includePaths[]=/home/u65/src/repo/desktop-prototype/.generated/design- properties&includePaths[]=/home/u65/src/repo/desktop-prototype/ app!./app/index.scss Module build failed: Child extract-text-webpack-plugin: + 1 hidden modules Child extract-text-webpack-plugin: + 1 hidden modules 

Como señaló @Richard_Boardman, Mac no distingue entre mayúsculas y minúsculas, pero Linux sí. Por lo tanto, cualquier error ortográfico del caso funcionará bien en su entorno de desarrollo de Mac, pero fallará cuando lo implemente.

Puede forzar a Webpack a ser más exacto con su nombre de archivo y la ruta que coinciden tanto en el servidor dev como en la comstackción, por lo que las faltas de ortografía fallarán mientras se encuentre en su caja de desarrolladores, en lugar de en el servidor, mediante el uso de un complemento del paquete web como mayúsculas y minúsculas. webpack-plugin .

Una vez que tengas eso instalado, puedes escribir algunas pruebas como:

 describe("Case-Sensitive Paths Plugin", () => { it('shouldn\'t interfere with correctly-spelled imports', () => { const getUser1 = require('../src/utils/api'); expect(getUser1).toBeDefined(); }); it('should cause mistakes in filename case to fail import', () => { expect(() => {const getUser2 = require('../src/utils/API');}).toThrow(); }); it('should cause mistakes in path case to fail import', () => { expect(() => {const getUser3 = require('../src/Utils/api');}).toThrow(); }); });