【发布时间】:2014-06-20 14:32:17
【问题描述】:
当我有一个看起来像这样的文件 x.js 时:
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 中运行它。我试过在我的 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 正在从static/bundle.js读取它,而在您的gulp示例中您正在编写发给build/bundle.js。哪一个才是你真正想要的? -
假设我执行了适当的 mv bundle.js 命令,将它放在正确的位置以供网络服务器访问。这不是问题的症结所在。
-
希望github project 会有所帮助。它展示了如何请求和导出库、html、gulp 文件等。
标签: javascript node.js gulp browserify