首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对rollup.js外部变量使用glob或正则表达式模式

对rollup.js外部变量使用glob或正则表达式模式
EN

Stack Overflow用户
提问于 2018-08-16 15:35:44
回答 2查看 597关注 0票数 4

是否可以在我的rollup配置中对外部使用glob或正则表达式模式?使用此配置:

代码语言:javascript
复制
export default {
  ...
  external: [
    'prop-types',
    'react',
    'prettier/standalone',
    'prettier/parser-babylon',
    'react-syntax-highlighter/prism-light',
    'react-syntax-highlighter/languages/prism/jsx',
    'react-syntax-highlighter/styles/prism/tomorrow',
    'react-element-to-string'
  ],
  ...
};

我想做一些类似的事情:

代码语言:javascript
复制
export default {
  ...
  external: [
    'prop-types',
    'react',
    'prettier/**',
    'react-syntax-highlighter/**',
    'react-element-to-string'
  ],
  ...
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-30 14:27:10

这在目前是不可能的。但是,您可以使用一个函数来实现类似的功能:

代码语言:javascript
复制
export default {
  ...
  external(id) {
    return [
      'prop-types',
      'react',
      'prettier',
      'react-syntax-highlighter',
      'react-element-to-string'
    ].includes(id.split('/')[0]);
  },
  ...
};

你应该避免在这个函数中进行昂贵的计算,因为它将被调用很多次(准确地说,每个文件中的每个导入都调用一次)。

另一种选择是将rollup-pluginutils包作为包含createFilter function for glob support的依赖项添加

代码语言:javascript
复制
import { createFilter } from 'rollup-pluginutils';

const external = createFilter([
  'prop-types',
  'react',
  'prettier/**',
  'react-syntax-highlighter/**',
  'react-element-to-string'
], null, {resolve: false});
// {resolve: false} will make sure these filters are not passed to
// path.resolve first and resolved against the current working directory

export default {
  ...
  external,
  ...
};
票数 6
EN

Stack Overflow用户

发布于 2021-07-29 15:41:13

rollup现在也支持external中的正则表达式,如下所示:

代码语言:javascript
复制
export default {
  external: ['three', /three\/.*/]
}

这会将threethree/*标记为外部变量,我已经在我的项目中使用过了,它的工作方式与预期一致。

有关更多选项,请参阅https://rollupjs.org/guide/en/#external

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

https://stackoverflow.com/questions/51871895

复制
相关文章

相似问题

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