将 Rollup + Svelte 与第三方 AMD 库一起使用
Using Rollup + Svelte with third party AMD libraries
我知道 Svelte 可以生成 AMD output 并在文档中找到有关如何执行此操作的一些详细信息。我还可以找到一些关于如何将 Rollup 配置为 output AMD 模块的信息。但是 input 呢?当我有 AMD 模块作为依赖项时,我需要做什么?
例如,假设我有两个不同的第三方库,它们都作为 AMD 库分发,我想在我的 Svelte 项目中使用这些库。我需要如何修改例如。 this nested components demo 允许这些 AMD 模块用作我的 Svelte 组件中的依赖项?
此外,我是否可以配置是否将这些库与我的 Svelte 组件捆绑在一起?如果是这样,我需要在哪里做?
备注
我也提出了这个问题on Github。
AMD 模块很难转换为 ES 模块,因此您可能会发现很难将它们与 Rollup 捆绑在一起。 (有 rollup-plugin-amd 但它带有警告。)
但是您可以轻松地将它们视为单独加载的外部依赖项——只是 import
它们正常然后配置 Rollup:
// rollup.config.js
export default {
// ...
format: 'amd',
external: ['an-external-amd-module'],
paths: {
'an-external-amd-module': 'https://my-cdn.com/an-external-amd-module.js'
}
};
你可以看到一个演示 here (repo here) — note that we're loading an exernal AMD module called the-answer, even though it's a regular import
, because of the Rollup config。
我知道 Svelte 可以生成 AMD output 并在文档中找到有关如何执行此操作的一些详细信息。我还可以找到一些关于如何将 Rollup 配置为 output AMD 模块的信息。但是 input 呢?当我有 AMD 模块作为依赖项时,我需要做什么?
例如,假设我有两个不同的第三方库,它们都作为 AMD 库分发,我想在我的 Svelte 项目中使用这些库。我需要如何修改例如。 this nested components demo 允许这些 AMD 模块用作我的 Svelte 组件中的依赖项?
此外,我是否可以配置是否将这些库与我的 Svelte 组件捆绑在一起?如果是这样,我需要在哪里做?
备注
我也提出了这个问题on Github。
AMD 模块很难转换为 ES 模块,因此您可能会发现很难将它们与 Rollup 捆绑在一起。 (有 rollup-plugin-amd 但它带有警告。)
但是您可以轻松地将它们视为单独加载的外部依赖项——只是 import
它们正常然后配置 Rollup:
// rollup.config.js
export default {
// ...
format: 'amd',
external: ['an-external-amd-module'],
paths: {
'an-external-amd-module': 'https://my-cdn.com/an-external-amd-module.js'
}
};
你可以看到一个演示 here (repo here) — note that we're loading an exernal AMD module called the-answer, even though it's a regular import
, because of the Rollup config。