2016-11-08 2 views
3

Я создаю проект с узлом на сервере и Angular 2 на клиенте. Я хочу использовать TypScript для всего проекта. Я хотел бы настроить ES6 на сервер, поскольку узел поддерживает его, но ES5 для клиента. В настоящее время моя структура каталогов выглядит примерно так.Как настроить ES6 для сервера и ES5 для клиента

├── app.js 
├── something.js 
├── tsconfig.json 
├── wwwroot 
│ ├── index.html 
│ ├── main.ts 
│ ├── components 
│ │ ├── mycomponent.ts 

Я хочу, чтобы все, что выше wwwroot целевой ES6, но все внутри wwwroot целевой ES5. Я попытался положить второй tsconfig.json внутри папки wwwroot, но это, похоже, не сработало. Я использую функцию автокомпиляции Atom, если это имеет какое-либо значение.

+0

Посмотрите https://github.com/angular/angular-cli как я вижу для вас, это должно быть хорошо, так как вы сможете быстро начать разработку, а позже, если вам нужно, вы можете продлить. Но я не уверен, есть ли опция ES6 –

ответ

3

Вы можете использовать babel для пересылки es6 javascript в любой вкус экстернарта, который вы желаете.

http://babeljs.io/

+0

Вы говорите, что я должен перевести все на es6, а затем использовать babel для перевода кода на стороне клиента на es5? – rgvassar

+0

В принципе да. Машинопись будет скомпилирована до es6, а затем babel возьмет это на es5. Это немного странно, но у вас очень специфический сценарий. – BentOnCoding

+0

Похоже, это лучший способ пойти на этом этапе. – rgvassar

1

У меня похожая ситуация, и то, что я делаю:

- project-root 
    - scripts 
    - tsconfig.json 
    - wwwroot 
    - scripts 
     - tsconfig.json 
    - html 
     - index.html 
    - styles 
     - index.css 

В scripts/tsconfig.jsones6 цели для сервера, а wwwroot/scripts/tsconfig.json цели es5 для клиента.

+0

Функция автоматического компиляции просто игнорировала нижний 'tsconfig.json', когда я это пробовал. Есть ли одна команда tsc, которую вы можете запустить, чтобы скомпилировать оба? – rgvassar

+0

Нет, вам нужно скомпилировать их по-разному, но если ваша IDE поддерживает несколько файлов 'tsconfig.json', тогда у вас не должно быть проблем. В моем текущем проекте у меня 4 разных, и он отлично работает. Я работаю с webstorm –

0

Вы можете использовать Babel для пересылки на es5, что nodejs еще не реализует, используя пресет "babel-preset-es2015-node6".

Вы можете transpile только каталоги, которые вы хотите ES5, используя, например, скрипт в узле package.json:

"prestart": "babel server-source --out-dir dist/source" 
Смежные вопросы