मैं एक वेबपैक प्लगइन बनाने की कोशिश कर रहा हूं, जो किसी निश्चित फ़ंक्शन के लिए कोड को पार्स करेगा और इसे किसी अन्य फ़ंक्शन के साथ प्रतिस्थापित करेगा, यह प्लगइन वैश्विक रूप से नए फ़ंक्शन का खुलासा करेगा।वेबपैक प्लगइन को किसी अन्य फ़ंक्शन को प्रतिस्थापित करने के लिए
class someName {
constructor(local, domain, translationFile, options) {
}
apply(compiler) {
// exposing ngt function as a global
compiler.plugin('make', function(compilation, callback) {
var childCompiler = compilation.createChildCompiler('someNameExpose');
childCompiler.apply(new webpack.DefinePlugin({
ngt: function(singular , plural, quantity) {
return quantity == 1 ? singular : plural;
}
}));
childCompiler.runAsChild(callback);
});
// searching for the getValue function
compiler.parser.plugin(`call getValue`, function someNameHandler(expr) {
// create a function to replace getValue with
let results = 'ngt('+ expr.arguments +')';
const dep = new ConstDependency(results, expr.range);
dep.loc = expr.loc;
this.state.current.addDependency(dep);
return true;
});
}
}
module.exports = someName;
अद्यतन/अलग तरीके से व्यक्त
मैं एक मुद्दा यहाँ है, जब compiler.parser.plugin('call getValue', function someNameHandler(expr) {...}
ब्लॉक टिप्पणी की है ngt
समारोह एक वैश्विक रूप में मौजूद हैं।
जब इसकी टिप्पणी नहीं की गई, मुझे एक त्रुटि मिलती है, एनजीटी अनिर्धारित है।
टिप्पणी की मेरा मतलब /**/
मुझे लगता है कि के लिए एक समाधान है, लेकिन इसके लिए अब तक तो विचार मिल गया। अभी मैं क्या करता हूं मैं एक अज्ञात फ़ंक्शन निर्यात करता हूं जो मैं चाहता हूं। Github
हाय कुछ कर सकते हैं, यह निम्नलिखित बातों को स्पष्ट करना संभव है? 'Reactjs' टैग प्रासंगिक कैसे है? क्या यह वेबपैक 1 या 2 है? (एक विशेषज्ञ के लिए स्पष्ट हो सकता है, लेकिन बेहतर इसे स्पष्ट करें) क्या आप अधिक विवरण के साथ पिछले 2 वाक्यों को दोहरा सकते हैं? (क्षमा करें, मुझे हो सकता है, लेकिन मुझे यह समझने में परेशानी है कि समस्या क्या है) –
@ ह्यूग्स मोरौ के पास प्रतिक्रियाओं का सीधा संबंध नहीं है लेकिन इसका उपयोग रिस्पॉज, वेबपैक 1 के लिए किया जाता है। और मैंने अधिक जानकारी के साथ प्रश्न अपडेट किया है। –
क्यों इसके लिए एक लेबल प्लगइन लिखना/उपयोग नहीं करते? यह एक बहुत आसान और बेबेल एक पारदर्शी के बाद है। – Bamieh