Предотвратите babel от попытки преобразовать ресурсы в модули JavaScript - PullRequest
0 голосов
/ 15 января 2019

Как я могу предотвратить попытки babel перемещать ресурсы (svg, css, ...) в проекте es2016?


Например, этот простой проект:

ЦСИ / app.js:

import logo from './logo.svg';

const Obj = { name: 'obj' };
export default Obj;

src / logo.svg : обычное масштабируемое векторное изображение SVG

package.json:

 "name": "test-babel",  
  "version": "1.0.0",  
  "description": "Please babel do not try converting svg files to js",  
  "scripts": {  
    "dev": "cross-env NODE_ENV=development babel-watch --presets es2015 src/app.js"  
  },  
...

без файла .babelrc, без веб-пакета / без комплектации


Компиляция приводит к следующей ошибке:

$ npm run dev

> test-import@1.0.0 dev /home/user/workspace/babel
> cross-env NODE_ENV=development babel-watch --presets es2015 src/app.js

/home/user/workspace/babel/src/logo.svg:1
(function (exports, require, module, __filename, __dirname) { <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3">
                                                              ^

SyntaxError: Unexpected token <
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:616:28)
    at Module._extensions..js (module.js:663:10)
    at babelWatchLoader (/home/user/workspace/babel/node_modules/babel-watch/runner.js:53:5)
    at Object.require.extensions.(anonymous function) [as .js] (/home/user/workspace/babel/node_modules/babel-watch/runner.js:62:7)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)

1 Ответ

0 голосов
/ 15 января 2019

Обнаружен этот плагин: https://www.npmjs.com/package/babel-plugin-inline-import
Импортируемые ресурсы встроены при компиляции, если их расширение объявлено в .babelrc:

{
  "plugins": [
    ["babel-plugin-inline-import", {
      "extensions": [
        ".css",
        ".svg"
      ]
    }]
  ]
}

Это решило мою проблему.

...