2017-03-09 7 views
0

Je gère actuellement une application d'une seule page en utilisant Vue.js comme infrastructure frontale. Toutes ses sources sont regroupées par webpack à travers l'environnement de développement et de production.Webpack resolve.alias Erreur spécifique au système d'exploitation

Récemment, j'ai mis à jour la version du module webpack de '2.1.0-beta.25' à '2.2.0'. Ce qui fonctionne bien dans ma machine de développement (OS X Sierra), mais une fois construit dans le serveur (CentOS 7), une erreur se produit à la fin du processus de construction du webpack, comme les extraits suivants.

ERROR in ./src/js/store/Store.js 
Module not found: Error: Can't resolve 'js/Defines.js' in '/path/to/project/src/js/store' 
@ ./src/js/store/Store.js 1:0-37 
@ ./src/client.js 

Plus précisément, Defines.js est situé dans src/js, et ce chemin est défini comme un alias par configs webpack tels que:

// webpack.config.js 
const path = require('path') 

module.exports = { 
    ... 
    resolve: { 
    alias: path.resolve(__dirname, './src/js') 
    }, 
    ... 
} 

Dans les sources j'importer ce module comme import Defines from 'js/Defines.js'. Cette erreur est très étrange pour moi car elle ne s'est jamais produite dans la version précédente de webpack, et je ne pense vraiment pas que les paramètres resolve.alias sont conçus pour être appliqués de manière spécifique au système d'exploitation. En outre, aucun problème similaire trouvé dans la documentation.

Si quelqu'un avait résolu ce genre de problèmes, s'il vous plaît faites le moi savoir. Merci.

Répondre

0

Je l'ai résolu pour moi-même.

Pour tous ceux qui finissent par suivre le même chemin, cela n'a rien à voir avec webpack ou d'autres bibliothèques.

nom du module de Mon Defines est src/js/defines.js, à partir d bas de casse, alors qu'il est importé sous forme 'src/js/Defines.js avec majuscules D. Peut-être que j'ai changé le nom de fichier par erreur. Fonctionne bien dans OS X, mais erreur dans CentOS 7.