我有这样的网络应用程序:
一切都很好,唯一的问题是bundle.js包含一个错误的
import { Map } from 'mapbox-gl';
// why is this import here, although rollup.config declares mapbox-gl external?
... bundle code follows as expected
Run Code Online (Sandbox Code Playgroud)
在它的头上。
rollup.config.js:
export default {
input: './js/app.tsx',
output: [
{
file: 'dist/bundle.js',
format: 'es'
},
],
external: ['mapbox-gl'], // this should prevent imports from mapbox-gl in the bundle
plugins: [
typescript()
],
}
Run Code Online (Sandbox Code Playgroud)
我搜索了所有 stackoverflow 和无尽的 github 存储库,但没有揭示为什么留下这个 import 语句。我在 rollup 中打开了一个功能请求,以允许创建纯 js 包,因为我相信 rollup 是正确的,因为它假设该包用作模块 - 格式最终设置为“es”。
我遇到了这个问题。@rollup/plugin-node-resolve修复。
Rollup 默认情况下不会查找并捆绑 Node 依赖项。默认情况下,Rollup 遵循 vanilla ES 模块规范,该规范对 node_modules 内部的 Node.js 依赖关系一无所知。添加此插件使 Rollup 查找 node_modules 中的包,因此它将不再将它们视为“外部”,并将捆绑它们而不是将它们视为外部。
OP:你不希望 Mapbox 是“外部的”。从 Rollup 的角度来看,“外部”模块是不会包含在您的捆绑包中的模块。在您的情况下,mapbox已经是外部的,但您希望将其设置为内部(包含在)您的包中,这就是该插件的作用。
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |