nieoczekiwany import słowa kluczowego w węźle.js
Próbuję uruchomić node.js backend server. Otrzymałem błąd unexpected reserved word
przy imporcie w węźle.plik js.
Linie w pliku core.module.js
to:
'use strict';
import lodashMixins from './lodashMixins.js'
... other imports and configurations ...
Uruchamiam proste polecenie: node core.module.js
Nie jest to rzadki błąd, ale zazwyczaj zdarza się to w przypadku innych bibliotek. Nie widziałem rozwiązania dla Node.js. Jak mam to naprawić? Używam Windows Server.
Edit: dowiedziałem się, że to ES6, ale jak mogę go uruchomić? Wygląda jak backend dla aplikacji, ale mam nie mam pojęcia, jakiego polecenia powinienem użyć, aby uruchomić go bez błędów.
3 answers
Słowo kluczowe import
jest częścią funkcji modułów w ECMAScript 2015, wraz z export
i kilkoma innymi specyfikacjami.
Obecnie nie jest zaimplementowany natywnie w NodeJS, nawet w najnowszej wersji (v0.12.7), ani nie jest obsługiwany w forku ES2015 "bardziej przyjaznym" iojs.
Będziesz musiał użyć transpilera, aby to zadziałało.
[edytuj] nadal nie jest wspierany w najnowszej wersji (v5.8) pomimo istnienia znacznika --harmony_modules
, który robi nic . Najlepiej jest użyć babel, jak wyjaśniono tutaj i tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:10
import
jest częścią ECMAScript 2015 (ES6) standard
i jak wspomniano powyżej {[9] } nie jest obecnie zaimplementowana natywnie w Nodejs.
Więc możesz użyć transpilera jak babel
aby uruchomić skrypt es6
npm install babel
Przykład oparty na tej odpowiedź
App.js
import {helloworld,printName} from './es6'
helloworld();
printName("John");
Es6.js
module.exports = {
helloworld: function() { console.log('hello world!'); },
printName: function(name) { console.log(name); }
}
I używając require hook
w start.js
require("babel/register");
var app = require("./app.js");
I uruchom aplikację as
node start.js
EDIT
Powyższa odpowiedź została oparta na babel v5.8.23
. Dla babel >= v6
Użyj require hook
w start.js as
require('babel-core/register');
require("./app.js");
Również transformacje nie są domyślnie włączone. Musisz więc zainstalować preset
. W tym przypadku użyj es2015
npm install babel-preset-es2015
I użyj go w pliku .babelrc
w folderze głównym
{
"presets": ["es2015"]
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:10
Napotkałem ten problem, ponieważ ręcznie instalowałem dowolne z tych narzędzi poza Visual Studio. Ale Visual Studio jest dostarczane z wieloma narzędziami wiersza poleceń open source, które są używane w nowoczesnych przepływach pracy nad tworzeniem stron internetowych. Oto jak możesz powiedzieć Visual Studio, aby używało tej samej wersji, która została zainstalowana ręcznie
Przejdź do Narzędzia –> Opcje –> projekty i rozwiązania - > zewnętrzne narzędzia internetowe
- Ustaw zmienną środowiskową global PATH przed ścieżką wewnętrzną, możesz po prostu użyć strzałki w prawym górnym rogu, aby zmienić kolejność.
LUB
- najpierw znajdź węzeł.instalacja js już masz i używaj w wierszu poleceń. Domyślnie Node.js 0.12.7 instaluje się na "C:\Program Files\nodejs". Dodaj ten wpis u góry do ścieżki do węzła.katalog js, aby zmusić Visual Studio do użycia tej wersji
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-08 02:02:04