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)在浏览器中,这并不完全起作用,我收到错误消息:“未捕获的错误:找不到模块'./x.js'”。为什么会发生这种情况?
2)我实际上想在gulp中使用vinyl-source-stream运行此代码。我尝试在gulpfile中做类似于以下内容的操作,但它不起作用。有任何想法吗?我收到错误消息“require未定义”。
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 从static/bundle.js
中读取它,在你的gulp
示例中,你将其写入到build/bundle.js
。哪一个才是你真正想要的呢? - loganfsmyth