【问题标题】:undefined variable that equals to a node module等于节点模块的未定义变量
【发布时间】:2018-12-09 06:27:42
【问题描述】:

我尝试使用 browserify 或 webpack 传输我的文件。

这是我的代码:

let rangy = require('rangy')
rangy.init()
const rang = () => rangy

在翻译我的代码并添加一个 html 页面后,我尝试在控制台中获取范围,但是当我输入 rangy 并按下回车按钮时,js 说:

未捕获的引用错误:未定义范围

当我输入rang() 并回车时,js 会说:

undefined

但第 2 行运行正确。

我需要在我的index.html 的脚本标签中使用rangy

我该怎么做?

这是我传递的文件:

(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){


let rangy = require('rangy')
rangy.init()
const rang = () => rangy

},{"rangy":2}],2:[function(require,module,exports){............

【问题讨论】:

  • 感谢@CertainPerformance。但这只是这个问题的打字错误。我修改了问题。
  • 很难从您的问题中判断您是否使用 webpack,但如果您使用的是 webpack,那么您遇到的问题是 webpack 将所有内容包装在一个函数中,因此所有 webpack 的东西都不会干扰其他外部 JavaScript 库。您能否提供有关您的 webpack 配置以及您使用的 webpack 版本的更多详细信息?
  • 我用的是最新版的webpack。但是导致 browserfy 和 webpack 的结果是一样的。
  • 可以分享一下转码后的代码吗?

标签: javascript ecmascript-6 node-modules


【解决方案1】:

如果你使用 webpack,并且 randy 泄漏到全局范围内是可以的,那么只需删除 let

rangy = require('rangy');
rangy.init();

randy 变量将在控制台中可用。

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多