Ich versuche, meine Tests bedingt zu laden, wenn der SPEC Env deklariert wird:require.context: inline RegExp Werke, var RegExp nicht
var context = null
if (process.env.SPEC) {
context = require.context('./tests', true, /.*?SearchInput.*/);
}
context.keys().forEach(context);
Das perfekt funktioniert. Wenn ich nun tun, um diese
var context = null
if (process.env.SPEC) {
var c = /.*?SearchInput.*/;
context = require.context('./tests', true, c);
}
context.keys().forEach(context);
Dies funktioniert nicht und alle Dateien in ./ abgestimmt sind
(der Parameter‘./tests' ignoriert werden) Was bin ich? Ich möchte, dass der dritte Parameter der require.context-Funktion ein RegExp-Objekt ist, damit ich RegExp mithilfe einer Variablen konstruieren kann.
EDIT 1
Dies funktioniert nicht:
var context = null
if (process.env.SPEC) {
var c = new RegExp(/.*?SearchInput.*/);
context = require.context('./tests', true, c);
}
context.keys().forEach(context);
Um dies zu testen Sie die tests.webpack.js Datei dieses Projekt bearbeiten können: https://github.com/erikras/react-redux-universal-hot-example
Sie müssen Lassen Sie die SPEC-Variable durch das Webpack
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('test'),
SPEC: JSON.stringify(process.env.SPEC || null)
},
__CLIENT__: true,
__SERVER__: false,
__DEVELOPMENT__: true,
__DEVTOOLS__: false // <-------- DISABLE redux-devtools HERE
})
und laufen: sagen SPEC = t npm Lauftest
Haben Sie versucht, die 'RegExp' Konstruktor? –
@RobbyCornelissen - Warum sollte das einen Unterschied machen? – nnnnnn
@nnnnnn Keine Ahnung. Es sollte mit dem Literal funktionieren, das der Variablen zugewiesen wurde, aber laut OP nicht. Der Versuch, mit dem Konstruktor zu arbeiten, würde einen zusätzlichen Datenpunkt bereitstellen und bei der Identifizierung der Ursache helfen. –