代码之家  ›  专栏  ›  技术社区  ›  Seth McClaine

使用浏览的节点应用程序访问module.exports

  •  1
  • Seth McClaine  · 技术社区  · 6 年前

    示例文件(index.js)

    module.exports = {
      index: () => 'test',
    };
    

    Browserify命令

    browserify src/index.js > dist/bundle.js --node
    

    如果我们使用一个文件来要求和控制台

    console.log(require('src/index'));   // { index: [Function: index] }
    console.log(require('dist/bundle')); // { } 
    

    我们的预期是bundle.js将导出与index.js相同的内容。

    有人能指出我们做错了什么或错过了什么吗?


    ~

    我们目前正在将我们的整个应用程序通过入口点压缩到AWS Lambda src/index.index 我们的目标是发送bundle.js文件并能够拥有入口点 bundle.index

    (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
    module.exports = {
        index: () => 'test',
    };
    
    },{}]},{},[1]);
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Louis    6 年前

    你需要使用 --standalone 旗帜。如果我复制您在问题中描述的设置并执行:

    $ browserify src/index.js --standalone mylib > dist/bundle.js
    

    然后我可以在它上运行一个交互式节点会话,并按照您希望的方式使用库:

    $ node
    > require("./dist/bundle").index()
    'test'
    

    这个 标志告诉Browserify用 UMD stub 它允许将包作为CommonJS模块、AMD模块或普通脚本(即不使用模块系统)加载。你提出的论点 --独立的 index 作为 mylib.index() .

        2
  •  0
  •   Vipin Kumar    6 年前

    你可以用 serverless 为此,很容易配置。无需使用 browserify

    请继续遵循以下正式文档进行设置 serverless 克利。

    1. Installation
    2. AWS - Credentials
    3. Quick Start

    一旦一切就绪,您就可以使用无服务器cli将lambda函数部署到AWS。按照以下步骤设置browserify。

    1. 安装 browserify 作为开发依赖。
    2. serverless-plugin-browserifier 作为开发依赖。
    3. serverless.yml 文件和集合 package.individually to true . ( Ref )

      plugins:
        - serverless-plugin-browserifier
      
      package:
        individually: true