노드 오류 : SyntaxError : 예기치 않은 토큰 가져 오기
나는 무엇이 잘못되었는지 이해하지 못한다. 나는 번역과 바벨에 대해 이야기하는 다른 포럼을 확인했다. 나는 무엇을해야합니까?
node -v
v5.5.0
내 코드 :
import recast from 'recastai'
그리고 오류
(function (exports, require, module, __filename, __dirname) { import recast from 'module1'
^^^^^^
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
at node.js:999:3
ES6 가져 오기는 최근에 도입 된 기능이며 현재 안정적인 Node 버전은 아직이를 지원하지 않습니다. Node.js 이슈 트래커는 이에 대한 미해결 문제 를 가지고 있습니다. 하지만 V8과 Node가이 기능에 대한 지원을 추가 할 때까지 임포트를 사용하려면 트랜스 파일러 (가장 인기있는 것은 babel )를 사용해야합니다.
신속하게 트랜스 파일을 시도하기 위해 babel은 웹 기반 REPL을 제공합니다. 이것은 코드가 트랜스 파일되는 것을 보여줍니다.
바벨 프로젝트 홈페이지 에 대한 관련 자원에 대한 포인트 바벨 시작 및 개발 워크 플로우와 통합하기.
가장 간단한 설정은이 설정 페이지를 방문 하여 Babel 기본 제공 섹션에서 CLI를 선택하십시오.
이것은 기본적으로 세 가지 간단한 단계를 포함합니다.
- babel-cli 설치 :
npm install --save-dev babel-cli babel-preset-es2015
.babelrc
구성 파일 생성 :echo '{ "presets": ["es2015"] }' > .babelrc
- 설치된 모듈을 사용하여 소스 코드를 트랜스 파일합니다.
./node_modules/.bin/babel src -d lib
앞서 언급 한 설정 페이지는 마지막 단계를 단순화하기 위해 npm 스크립트를 추가하는 방법도 보여줍니다. 또는 babel을 편집기 또는 빌드 체인과 통합하여 변경시 파일이 자동으로 컴파일되도록 할 수 있습니다.
바벨을 다루고 싶지 않은 경우. 이것은 나를 위해 일했습니다.
const calc = require('./my_calc');
let {add, multiply} = calc;
1) 최신 사전 설정 설치
yarn add --dev babel-preset-latest
2) 다음을 생성 .babelrc
하고 추가합니다.
{
"presets": ["latest"]
}
3) 스크립트 실행
npx babel-node yourscript.js
또는 package.json
파일 추가
"scripts": {
"start": "babel-node index.js"
}
시작하기
먼저 babel-cli를 설치하겠습니다.
$ npm install --save-dev babel-cli
일부 사전 설정과 함께.
$ npm install --save-dev babel-preset-es2015 babel-preset-stage-2
package.json :
"scripts": {
"start": "babel-node index.js --presets es2015,stage-2"
}
운영:
$ npm start
nodemon으로 파일 변경 감시 :
nodemon을 사용하여 npm 시작 스크립트를 개선 할 수 있습니다.
$ npm install --save-dev nodemon
그런 다음 npm 시작 스크립트를 업데이트 할 수 있습니다.
package.json :
"scripts": {
"start": "nodemon index.js --exec babel-node --presets es2015,stage-2"
}
운영:
$ npm start
pm2 를 사용하는 경우 다음 단계를 따르십시오.
$ pm2 start app.js --interpreter babel-node
이 문제를 해결하는 것은 매우 간단하며 import
ES6 구문이며 Node는 지원이 어렵습니다. Babel 을 트랜스 파일러로 추가하고 package.json으로 이동하여 다음을 추가해야합니다.
먼저 트랜스 파일을 위해 JS 코드를 실행하는 동안 babel을 사용할 스크립트 태그를 추가합니다.
"scripts": {
"start": "nodemon ./app.js --exec babel-node -e js"
}
그런 다음 Babel devDependencies로 다음을 추가하십시오.
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-0": "^6.24.1"
}
after this you also need to configure the babel presets file, therefore create .babelrc file at the root directory and define the presets as follows
{
"presets": [
"es2015",
"stage-0"
]
}
Don't forget to do an npm install
in the end
Thanks to a NodeJS enhancement proposal we have a path forward. You can use @standard-things/esm
Find the announcement here Simply run
npm i --save @std/esm
In your packaged today.
ReferenceURL : https://stackoverflow.com/questions/37634198/node-error-syntaxerror-unexpected-token-import
'programing' 카테고리의 다른 글
Cordova 빌드 iOS 오류 : 'path / to / myApp.xcarchive'경로에서 아카이브를 찾을 수 없습니다. (0) | 2021.01.16 |
---|---|
확인 대화 상자를 만드는 Angular 2 쉬운 방법 (0) | 2021.01.16 |
최고의 JavaScript 날짜 파서 및 포맷터? (0) | 2021.01.15 |
자바에서 KDTree 구현 (0) | 2021.01.15 |
json은 튜플을 키로 사용하여 사전을 직렬화합니다. (0) | 2021.01.15 |