2016-09-13 2 views
4

Я использую Babel в своем проекте. Дело в том, у меня есть эта строка кода в моем server.js:Как скомпилировать все включенные файлы в один, используя Babel?

import schema from "./data/schema"; 

(data/schema.js находится в синтаксисе ES2015).

И когда я пытаюсь скомпилировать мой server.js с Бабелем, как это:

babel -o server_production.js --minified server.js 

он создает новый файл без ошибок и заменяет import инструкции с require. Но дело в том, что когда я пытаюсь запустить мой барабан, скомпилированный server.js с node, он жалуется на data/schema.js, потому что он не был передан в ES5, требуется только (точная ошибка Unexpected token "import", потому что я использую некоторые другие импортные data/schema.js).

Итак, вопрос: как я могу скомпилировать мой файл и все его файлы import s в один файл? Я пробовал babel -o server_production.js --minified data/schema.js server.js, но это тоже не сработало.

+2

Я не думаю, что Babel анализирует зависимость. Вы должны указать все файлы, которые хотите преобразовать. –

ответ

5

Бабель не связывает зависимости по умолчанию. Вам нужно будет использовать модуль, например rollup.

Чтобы сделать это, вам нужно определить rollup конфигурации, подобный этому:

rollup.config.js

import babel from 'rollup-plugin-babel'; 
import babelrc from 'babelrc-rollup'; 

export default { 
    entry: 'server.js', 
    dest: 'server_production.js', 
    plugins: [ 
    babel(babelrc()) 
    ] 
}; 

Это работает с файлом package.json определено ниже:

{ 
    "scripts": { 
    "rollup": "./node_modules/.bin/rollup -c" 
    }, 
    "devDependencies": { 
    "babel-cli": "6.14.0", 
    "babel-plugin-external-helpers": "6.8.0", 
    "babel-preset-es2015": "6.14.0", 
    "babelrc-rollup": "3.0.0", 
    "rollup": "0.35.10", 
    "rollup-plugin-babel": "2.6.1" 
    } 
} 

Выполнение команды npm run rollup -c для объединения и компиляции файлов.

Вы найдете пример здесь: https://ide.c9.io/ifeanyidev/babel-rollup-example

+0

Удивительный, спасибо! – serge1peshcoff

+0

Достаточно запустить рулон npm runup – haffla

0

Я хотел бы предложить, чтобы попытаться обернуть проект Maven в maven-wrapper версии

После этого все, что вам нужно, чтобы вызвать mvnw и обертка скачать Maven , настройте его и сделайте.

Я не могу сказать больше, так как у меня нет xp, но это может быть решение.

Смежные вопросы