汇总:全局变量和外部变量

Rollup: globals & external

我正在尝试汇总我的完整 es6 模块存储库,它既有项目的本地 imports/export,也有导入的依赖项,这些依赖项也是脚本或模块。

我也在尝试通过汇总创建旧版 iife 模块的双重构建。

这只适用于我的项目,没问题。困难在于我有依赖项的导入。

Rollup 的全局变量和外部选项应该有所帮助,但到目前为止,我还没有成功地公开这些并汇总到 iffe。我得到 http://backspaces.github.io/asx/libs/three.module.js' is imported by src/Three.js, but could not be resolved – treating it as an external dependency

错误和其他。生成的汇总不是我想要的:转换 iife 汇总以期望依赖项是全局的,因此从汇总中删除。

我意识到这是一个非常普遍的问题,但我只想知道如何使用这两个选项来管理我的存储库,以便我可以导入依赖项并可以 "remove" 在汇总中。

谁能清楚地解释一下它们以及它们的作用?汇总 wiki 有点帮助,但不够完整。

要使 Rollup 能够包含依赖项,它必须能够找到它。它没有任何用于获取远程 URL 例如 http://backspaces.github.io/asx/libs/three.module.js 的内置逻辑(这可以作为插件完成,但据我所知,该插件尚未编写,我可能无论如何建议不要这样做)。

相反,您最好像这样从 node_modules 导入模块...

import THREE from 'three';

...并将 node-resolve and commonjs 添加到生成 IIFE 的配置中。

对于生成非 IIFE 构建的配置,其中 Three.js 保持在外部,您需要使用 paths 配置将 three 指向 URL:

// rollup.config.js
export default {
  entry: 'src/main.js', // or whatever
  // ...
  external: ['three'], // so it's not included
  paths: {
    three: http://backspaces.github.io/asx/libs/three.module.js
  }
};