【问题标题】:How to handle svg imports (ES6) in rollup如何在汇总中处理 svg 导入(ES6)
【发布时间】:2017-06-29 03:01:26
【问题描述】:

如果我将 svg 文件导入到 ES6 模块中,如何在汇总中处理它?我目前有这样的事情(我正在做的简单示例):

import next from '../assets/next.svg';
export default () => console.log('Here is some Svg: ! ', next);

我有一个如下所示的汇总配置:

import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';

export default {
  entry: 'src/app.js',
  dest: 'build/app.min.js',
  format: 'iife',
  sourceMap: 'inline',
  plugins: [
    babel({
      exclude: 'node_modules/**',
    }),
    resolve({
      jsnext: true,
      main: true,
      browser: true,
    }),
    commonjs(),
  ],
};

然后我得到以下错误:

无法解析“../assets/next.svg” /home/magnferm/projects/slask/rollup-test/src/chill/index.js

路径没有问题,但 rollup 似乎不知道如何处理 svg 文件。有没有我可以使用的插件,还是我必须以某种方式区别对待?

【问题讨论】:

    标签: javascript node.js svg rollup


    【解决方案1】:

    有一个插件。它被称为 @rollup/plugin-image,除了其他格式之外,它还处理 .svg 导入:

    import babel from '@rollup/plugin-babel';
    import resolve from '@rollup/plugin-node-resolve';
    import commonjs from '@rollup/plugin-commonjs';
    import image from '@rollup/plugin-image';
    
    export default {
      entry: 'src/app.js',
      dest: 'build/appn.min.js',
      format: 'iife',
      sourceMap: 'inline',
      plugins: [
        babel({
          exclude: 'node_modules/**',
        }),
        resolve({
          jsnext: true,
          main: true,
          browser: true,
        }),
        commonjs(),
        image()
      ],
    };
    

    【讨论】:

    • 嗨,我仍然有这个插件的类似问题:Could not load /Users/stan/dev/projects/front-boilerplate/src/icons/baseline-delete_forever-24px.svg.js 为什么汇总查找 svg.js 文件?
    • 为我工作,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2020-06-18
    • 1970-01-01
    • 2017-05-21
    • 2021-12-05
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多