【问题标题】:Browserify - create bundle with external moduleBrowserify - 使用外部模块创建包
【发布时间】:2014-10-31 10:09:39
【问题描述】:

我真的是浏览器化世界的新手。 我想使用这个模块peer-file,以允许两个浏览器之间的文件传输。将使用部分读入自述文件,我注意到我必须在我的网页中包含脚本 bundle.js。要构建捆绑包,我需要输入browserify -r ./index.js > build.js,其中-r 选项表示外部需要,因此我可以在主脚本中使用关键字require(),如下所示:

var send = require('peer-file/send')
var receive = require('peer-file/receive')

但是,当我加载网页时,我在控制台中收到此错误。 Uncaught Error: Cannot find module 'peer-file/send'

有什么建议吗?

【问题讨论】:

    标签: javascript npm browserify


    【解决方案1】:

    如果您查看索引文件 - https://github.com/michaelrhodes/peer-file/blob/master/index.js

    它将sendreceive 添加到导出中。所以你首先得到一个句柄,然后你可以使用点符号访问导出。

    var send = require('peer-file').send;
    var receive = require('peer-file').receive;
    

    或者只得到一次:

    var peerFile = require('peer-file');
    
    // Later
    peerFile.send..
    peerFile.receive..
    

    【讨论】:

    • 我确实像你说的那样,但我得到了“未捕获的错误:找不到模块'对等文件'”。也许我创建了捆绑类型:browserify -r ./index.js:peer-file > build.js
    • 我关注了这个:github.com/substack/node-browserify#external-requires。所以 : 后面的名词表示与导出模块关联的名称。我说的对吗?
    • 您的项目是否有 package.json(使用 npm init 生成)并且您在 dependencies 中列出了该模块,并且它已安装到 node_modules 文件夹中?
    • 是的,但在那之后,我需要将 bundle.js 文件移动到公用文件夹中 - 我正在使用 express。无论如何,答案是肯定的。
    • 我建议你使用 grunt 或 gulp 来设置你的构建任务。我还建议您使用 webpack 而不是 browserify,因为它的编译速度要快得多。为此在 grunt 或 gulp 中设置构建任务很简单——如果没有看到你的项目,就无法确切地看到你做错了什么
    猜你喜欢
    • 1970-01-01
    • 2015-07-28
    • 2019-05-22
    • 2015-06-13
    • 1970-01-01
    • 2015-06-06
    • 2015-11-20
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多