【问题标题】:PubNub Node util.inherit is not a functionPubNub 节点 util.inherit 不是函数
【发布时间】:2019-01-22 16:34:30
【问题描述】:

将 pubnub 节点 sdk 添加到我的 nativescript 项目后

npm install pubnub

我收到以下错误消息:

> System.err: Error: Parsing XML at 58:9 System.err:  > util.inherits is
> not a function

我只是这样要求它:

const PubNub = require("pubnub");

知道这是怎么发生的吗?

【问题讨论】:

  • 不鼓励使用 util.inherits()。使用 ES6 类并扩展
  • @Endless 我来自图书馆我没有直接使用它
  • 目前,PubNub Node SDK 与 NativeScript v5 不兼容。它与 NativeScript v3 兼容。 PubNub 正在研究可以进行哪些更改以与 NativeScript v5 兼容。
  • @Jonnotdoexx - 您提供了一种可提供兼容性的解决方法。请提供您的解决方案作为对您问题的正式回答,您将获得额外的 Stack Overflow 代表。

标签: javascript pubnub


【解决方案1】:

目前,PubNub Node SDK 与 NativeScript v5 不兼容。它与 NativeScript v3 兼容。 PubNub 正在研究可以进行哪些更改以与 NativeScript v5 兼容。

@Jon_not_doe_xx 的解决方法:

webpack.config.js 文件的头部添加:

const shims = require('nativescript-nodeify/shims.json');
const aliases = {};

for (const key of Object.keys(shims)) {
    const value = shims[key];
    aliases[key + '$'] = value;
}

aliases['inherits$'] = 'inherits/inherits_browser';

// Remove hook, as this will only cause problems at this point.
// Checking and deleting within webpack ensures 
//   that it will be deleted during a cloud build.

let fs = require("fs");
let process = require("process");

if (fs.existsSync(__dirname + "/hooks/after-prepare/nativescript-nodeify.js")) {
    process.stdout.write("Found evil hook, deleting...\n");
    fs.unlinkSync(__dirname + "/hooks/after-prepare/nativescript-nodeify.js");
    process.stdout.write("Should be fixed now.\n");
}

else process.stdout.write("Hooks seem clean, moving on.\n");

另外,修改webpack.config.js文件中resolve对象内的别名对象:

alias: {
    '~': appFullPath,
    '@': appFullPath,
    ...aliases 
},

【讨论】:

    猜你喜欢
    • 2018-03-23
    • 2021-09-20
    • 2020-07-24
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2021-09-19
    • 2016-12-10
    相关资源
    最近更新 更多