Ho avuto lo stesso problema, quindi faccio una "soluzione".
Sono abbastanza sicuro che questa non è la scelta migliore. Ho finito per stoping usarlo, dai punti di risposta qui:
https://github.com/facebookincubator/create-react-app/issues/517 https://github.com/facebook/jest/issues/2298
Ma se davvero bisogno, è necessario includere l'ovatta di seguito in ogni file che si chiama (non sulle prove stesso, perché lo require
non sarà sovrascritto a livello globale in un ambiente nodo).
// This condition actually should detect if it's an Node environment
if (typeof require.context === 'undefined') {
const fs = require('fs');
const path = require('path');
require.context = (base = '.', scanSubDirectories = false, regularExpression = /\.js$/) => {
const files = {};
function readDirectory(directory) {
fs.readdirSync(directory).forEach((file) => {
const fullPath = path.resolve(directory, file);
if (fs.statSync(fullPath).isDirectory()) {
if (scanSubDirectories) readDirectory(fullPath);
return;
}
if (!regularExpression.test(fullPath)) return;
files[fullPath] = true;
});
}
readDirectory(path.resolve(__dirname, base));
function Module(file) {
return require(file);
}
Module.keys =() => Object.keys(files);
return Module;
};
}
Con questa funzione, non è necessario cambiare qualsiasi require.context
chiamata, si esegue con lo stesso comportamento (se è in webpack, utilizzando l'originale, e se per scherzo, con la funzione deriso).
fonte
2017-02-12 17:45:51
Hai trovato la risposta? – BigDong