जब मैं एक फ़ाइल x.js है कि इस तरह दिखता है:gulp के भीतर से ब्राउज़रify का उपयोग करते समय ब्राउज़र पर 'आवश्यकता' का पर्दाफाश कैसे करें?
x.js
module.exports = function (n) { return n * 111 }
और मैं बहुत की तरह कमांड लाइन से browserify चलाएँ:
browserify -r ./x.js > bundle.js
मैं एक मिल आउटपुट फ़ाइल जो इस तरह दिखती है (लगभग):
require=(function e(t,n,r){function ......
./App.jsx":[function(require,module,exports){
module.exports=require('0+DPR/');
},{}]},{},[])
फिर मेरे ब्राउज़र कोड में मैं यह कर सकता:
<html>
<head>
<title>React server rendering example</title>
<script src="static/bundle.js"></script>
</head>
<body>
Welcome to the React server rendering example. Here is a server-rendered React component:
<div id="53a442ff8b39d"></div><script>
var x = require('./x.js');
console.log(x(3))
</script> </body>
</html>
मैं वास्तव में दो प्रश्न हैं:
1) यह नहीं है ब्राउज़र मैं त्रुटि मिलती है में काफी काम: "Uncaught त्रुटि: नहीं खोजा जा सका मॉड्यूल './x। js ' "। ऐसा क्यों हो रहा है?
2) मैं वास्तव में इसे विनील-स्रोत-स्ट्रीम का उपयोग करके गलप में चलाने के लिए चाहता हूं। मैंने अपने gulpfile में ऐसा कुछ करने की कोशिश की है लेकिन यह काम नहीं करता है। कोई विचार? मैं त्रुटि 'की आवश्यकता होती है परिभाषित नहीं है'
var gulp = require('gulp'),
browserify = require('browserify'),
source = require('vinyl-source-stream');
var b = browserify({
entries: ['./x.js'],
});
b.bundle({debug: false})
.pipe(source('bundle.js'))
.pipe(gulp.dest('./build'));
अपने कमांड लाइन उदाहरण में आप '' bundle.js' x.js' रूप में एक ही फ़ोल्डर में लिख रहे हैं, लेकिन अपने HTML 'स्थिर/bundle.js' से पढ़ रही है, और अपने' gulp' उदाहरण में आप इसे 'build/bundle.js' पर लिख रहे हैं। वास्तव में आप कौन सा चाहते हैं? – loganfsmyth
चलो बस मान लें कि मैं उचित एमवी bundle.js कमांड को वेबसर्वर तक पहुंचने के लिए सही स्थान पर रखने के लिए करता हूं। यह समस्या का क्रूक्स यहां नहीं है। – asolberg
उम्मीद है कि यह [github परियोजना] (https://github.com/erichosick/nodeboxrequire) मदद करेगा। यह दिखाता है कि लाइब्रेरी, एचटीएमएल, गल्प फ़ाइल इत्यादि की आवश्यकता और निर्यात कैसे करें। – ehsk