首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅用几个加载项加载XRegExp?

如何仅用几个加载项加载XRegExp?
EN

Stack Overflow用户
提问于 2018-06-20 14:08:09
回答 1查看 578关注 0票数 0

我已经搜索了XRegExp的网站和GitHub 自述文件。这里唯一的示例加载了xregexp-all.js,这正是我不想做的,因为它加载了所有的加载项。因此,我找到了这样的例子:

代码语言:javascript
复制
<script src="xregexp.js"></script>
<script src="addons/unicode-base.js"></script>
<script src="addons/unicode-categories.js"></script>

但是,尝试以上的方法只会导致ReferenceError: exports is not defined

我怎样才能只加载XRegExp的一些插件呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 14:08:09

您在script中显示的用法可能与早期版本的XRegExp一起使用过,但现在它已经过时了,而且新的用法似乎在任何地方都没有文档化。

您可以使用一个xregexp-all.js标记加载script,因为它在文件的最开始就有一个UMD包装器,这允许这种用法。但是,如果您查看XRegExp附带的已转移的addon文件,您将在每个插件中看到如下代码:

代码语言:javascript
复制
'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});

exports.default = function (XRegExp) {
// ...
};

这告诉你两件事。一是加载项是模块,周期。它们没有UMD包装器,所以用script加载它们是行不通的。其次,加载项导出一件事:函数。正如参数的名称所示,您需要将XRegExp库本身传递给它,这样才能安装它自己。在存储库中的src/index.js 来源中还可以找到进一步的线索。它包括:

代码语言:javascript
复制
import XRegExp from './xregexp';

import build from './addons/build';
import matchRecursive from './addons/matchrecursive';
import unicodeBase from './addons/unicode-base';
import unicodeBlocks from './addons/unicode-blocks';
import unicodeCategories from './addons/unicode-categories';
import unicodeProperties from './addons/unicode-properties';
import unicodeScripts from './addons/unicode-scripts';

build(XRegExp);
matchRecursive(XRegExp);
unicodeBase(XRegExp);
unicodeBlocks(XRegExp);
unicodeCategories(XRegExp);
unicodeProperties(XRegExp);
unicodeScripts(XRegExp);

export default XRegExp;

在用XRegExp安装了npm之后,这就是我在我的一个项目(必须在ES5引擎上运行)中使用的内容,在这里,我只想用一些Unicode加载项来加载XRegExp,而没有其他东西:

代码语言:javascript
复制
var XRegExp = require("xregexp/lib/xregexp");
var base = require("xregexp/lib/addons/unicode-base");
var blocks = require("xregexp/lib/addons/unicode-blocks");
var categories = require("xregexp/lib/addons/unicode-categories");

base(XRegExp);
blocks(XRegExp);
categories(XRegExp);

此代码在Node中工作,Webpack也对其进行了适当的处理,以便在浏览器中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50950224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档