gpt4 book ai didi

javascript - 如何在 browserify 中使用多个包

转载 作者:行者123 更新时间:2023-11-28 00:53:27 24 4
gpt4 key购买 nike

我只是想找出一个使用 browserify 生成多个 bundle 的简单示例,但我无法让它工作。我从 browserify 文档 ( https://github.com/substack/node-browserify#multiple-bundles ) 中的这个简单示例开始:

beep.js:

var robot = require('./robot');
alert(robot('beep'));

机器人.js:

module.exports = function (s) { return s.toUpperCase() + '!' };

然后构建 bundle :

browserify -r ./robot.js > common.js
browserify -x ./robot.js beep.js -d > beep_bundle.js

我的页面:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>beep</title>

<script src="common.js"></script>
<script src="beep_bundle.js"></script>
</head>
<body>

</body>
</html>

我发现当它运行时,我收到一个错误:

Uncaught Error: Cannot find module '/robot.js' 

这似乎是因为两个输出文件 beep_bundle.jscommon.js 之间存在差异。

beep_bundle.js(请注意,字符串“/robot.js”出现在映射中):

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var robot = require('./robot.js');
alert(robot('beep'));
},{"./robot.js":"/robot.js"}]},{},[1])
//# ...

common.js(请注意,映射中出现字符串“./robot.js”):

require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"./robot.js":[function(require,module,exports){
module.exports = function (s) { return s.toUpperCase() + '!' };
},{}]},{},[])
//# ...

如果我手动编辑 beep_bundle.js 以包含“./robot.js”,则它可以正常工作。我应该怎样做才能使其正常工作?

最佳答案

甚至不要用 Browserify 5+ 尝试这个,它已经严重损坏了...... https://github.com/substack/node-browserify/issues/933

关于javascript - 如何在 browserify 中使用多个包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com