汇总:全局和外部
Posted
技术标签:
【中文标题】汇总:全局和外部【英文标题】:Rollup: globals & external 【发布时间】:2017-11-14 16:27:58 【问题描述】:我正在尝试汇总我的完整 es6 模块存储库,该存储库既有项目的本地导入/导出,也有对也是脚本或模块的依赖项的导入。
我也在尝试进行双重构建,通过汇总创建旧的 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 汇总转换为期望依赖项是全局的,因此从汇总中删除。
我意识到这是一个非常普遍的问题,但我只想知道如何使用这两个选项来管理我的 repo,以便我可以导入依赖项并可以在汇总中“删除”它们。
谁能清楚地解释它们以及它们的作用?汇总 wiki 有点帮助,但还不够完整。
【问题讨论】:
【参考方案1】:为了让 Rollup 能够包含依赖项,它必须能够找到它。它没有任何用于获取远程 URL 的内置逻辑,例如 http://backspaces.github.io/asx/libs/three.module.js(可以作为插件完成,但 AFAIK 尚未编写该插件,我可能建议不要这样做)。
相反,您最好像这样从 node_modules 导入模块...
import THREE from 'three';
...并将node-resolve 和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
;
【讨论】:
谢谢:一个小问题:对于 iife 构建,我真的希望完全删除三个导入,假设我将 哦,我只想说 Rollup 非常棒,谢谢! 谢谢!当您说完全删除时,您的意思是您希望将 THREE 捆绑到您的 IIFE 中,或者您想删除import
声明但将 THREE 保留为单独的 <script>
标签?如果是第一个,请使用 node-resolve 插件,以便 Rollup 可以找到它。如果第二个,external:['three'], global: three: 'THREE'
说'不要捆绑 Three.js,只需从全局命名空间中获取它,顺便说一下,它被称为 window.THREE
从 2020 年开始更新,我不得不将“路径”放在“输出”属性中。为了让它工作。
Emm...如果我从特定的本地路径而不是“三个”模块中导入三个怎么办。以上是关于汇总:全局和外部的主要内容,如果未能解决你的问题,请参考以下文章
JavaWeb-Ajax笔记汇总 --- 全局刷新和局部刷新;ajax 中使用 XMLHttpRequest 对象(四步);json 的使用