我试图汇总我的完全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汇总以期望依赖关系是全局因此从汇总中删除。
我意识到这是一个相当普遍的问题,但我只是想知道如何使用这两个选项来管理我的仓库,以便我可以导入依赖项,并且可以"删除"他们在汇总。
任何人都可以清楚地解释他们以及他们做了什么吗?汇总维基略有帮助但不够完整。
答案 0 :(得分:5)
要让Rollup能够包含依赖项,它必须能够找到它。它没有任何内置逻辑来获取http://backspaces.github.io/asx/libs/three.module.js这样的远程URL(可以作为插件完成,但AFAIK该插件还没有被编写,而且我' d无论如何都可能反对它。)
相反,您最好从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
}
};