Browserify 不使用 module.exports,即使使用 --standalone 选项

问题描述

我有以下 JS 文件

common.js

"use strict";

const MarketingPolicy = {
   Subscriptions: {
      // Some properties here.
   },Campaigns: [
      // Some objects here.
   ]
};

const otherObject = {
   // Some properties here.
};

module.exports = {
   otherObject,MarketingPolicy
};

这适用于 Node.js:

const common = require("./common.js");
const policy = common.MarketingPolicy; // No error.

但是当使用 browserify 将其导出到 common.bundle.js 时,客户端 (undefined) 无法访问任何对象,即使使用 --standalone选项:

以下方法均无效:

browserify functions/middleware/common.js | uglifyjs >  store/public/app/scripts/common.bundle.js
browserify functions/middleware/common.js > store/public/app/scripts/common.bundle.js
browserify functions/middleware/common.js --s common > store/public/app/scripts/common.bundle.js
browserify functions/middleware/common.js --standalone common > store/public/app/scripts/common.bundle.js

我如何在客户端对其进行测试?

在 app.html 中:

<script src="/app/scripts/common.bundle.js"></script>
<script src="/app/scripts/app.js"></script>

在 app.js 中:

const policy = MarketingPolicy; // undefined
const policy = common.MarketingPolicy; // common is undefined.

使用global

当我在 global 中使用 common.js 时,MarketingPolicy 对象中的属性在服务器端和客户端都无法再访问:

global.MarketingPolicy = {
   Subscriptions: {
      // Some properties here.
   },Campaigns: [
      // Some objects here.
   ]
};

module.exports = {
   otherObject,MarketingPolicy: this.MarketingPolicy
};

在 Node.js 中:

const common = require("./common.js");
const subscriptions = common.MarketingPolicy.Subscriptions; // Subscriptions is undefined.

这个问题花了我一整天的时间进行故障排除和研究,却没有让我的 common.js 对两端都有效。相信我,我什至将所有对象都放在一个 module.exports 中,但仍然无法正常工作。我看到很多人在许多其他帖子中将 --standalone 选项标记为答案 -- 我是否在代码中遗漏了其他内容?希望有人能指点我一下。在此先感谢您!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)