简体   繁体   English

汇总 - 导入外部库

[英]rollup - importing external library

Earlier I used the script to use the library:早些时候我使用脚本来使用库:

Now I use yarn and rollup to build project with next files.现在我使用 yarn 和 rollup 来构建带有下一个文件的项目。 package.json: package.json:

{
  "name": "maplib",
  "version": "1.0.0",
  "main": "src/main.js",
  "license": "MIT",
  "devDependencies": {
  "@babel/cli": "^7.10.5",
  "@babel/core": "^7.10.5",
  "@babel/node": "^7.10.5",
  "@babel/preset-env": "^7.10.4",
  "@rollup/plugin-node-resolve": "^8.4.0",
  "rollup": "^2.22.2"
  },
  "dependencies": {
    "mapbox-gl": "^1.11.1"
  },
  "scripts": {
    "build": "rollup -c"
  }
}

rollup.config.js:汇总.config.js:

import resolve from '@rollup/plugin-node-resolve';
                         
export default {
  input: 'src/main.js',
  external: ['mapbox-gl-dev'],
  output: {
    file: 'src/blazorMap/dist/MapBoxBlazor.js',
    format: 'iife',
    globals: {
      mapboxgl: 'mapboxgl'
    },
    plugins: [
      resolve(), // so Rollup can find `mapbox-gl`
    ]
  }
};

and main.js:和 main.js:

import * as mapboxgl from 'mapbox-gl'

export function init(o) {
    
    this.assign(mapboxgl, "accessToken", o.accessToken);
        this.mapblazor = new mapboxgl.Map(
        container   = o.container,
        style       = o.mapStyle,
        center      = o.mapCenter,
        zoom        = o.mapZoom
    );
}

I get error message: https://rollupjs.org/guide/en/.. .我收到错误消息: https://rollupjs.org/guide/en/..。 dependency mapbox-gl (imported by src\main.js) (.) Missing global variable name Use output.globals to specify browser global variable names corresponding to external modules mapbox-gl (guessing 'mapboxgl') created src/blazorMap/dist/MapBoxBlazor?js in 37ms How I can fix issue with importin mapbox-gl? dependency mapbox-gl (imported by src\main.js) (.) Missing global variable name 使用 output.globals 指定外部模块对应的浏览器全局变量名 mapbox-gl (guessing 'mapboxgl') created src/blazorMap/dist/ 37 毫秒内的 MapBoxBlazor?js 如何解决 importin mapbox-gl 的问题?

You may need '@rollup/plugin-commonjs', move the position of 'plugins' outside of output, and set a 'name' property to 'output':您可能需要“@rollup/plugin-commonjs”,将“插件”的 position 移到 output 之外,并将“名称”属性设置为“输出”:

import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs'

export default {
  input: 'src/main.js',
  external: ['mapbox-gl-dev'],
  output: {
    file: 'src/blazorMap/dist/MapBoxBlazor.js',
    format: 'iife',
    globals: {
      mapboxgl: 'mapboxgl',
    },
    name: 'xxx'
  },
  plugins: [
    resolve(), // so Rollup can find `mapbox-gl`
    commonjs(),
  ],
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM