node 4.0 이상 나왔지만, gulpfile.babel.js를 쓰는 법은 무엇인가 바뀌는 거야?
우선은 보통으로 시도한 결과
그러고 보니
Node.js ~> 4.0.0
가 나오고 나서 아무것도 하지 않겠다고 생각하고 가볍게 이쪽의 기사를 참고하면서 해 보려고 했지만, 10분 정도 빠진 느낌이었기 때문에 기사화하려고 생각했다간단히 아래와 같은 쓰는 방법을 하면 일단 움직일까, 라고 생각해 시험해 보았지만, 당연히 이것이라면 움직이지 않습니다
import gulp from 'gulp'
import gulpWebserver from 'gulp-webserver'
gulp.task('serve', () =>
gulp.src('./')
.pipe(
gulpWebserver({
livereload: true,
port: 8001,
fallback: 'index.html',
open: true
})
);
);
gulp.task('default', ['serve'])
우선 보통의 Node.js라면
import
문을 해석할 수 없습니다그래서 인식시키기 위해서는 ES2015의 문법을
gulp
가 알아야 합니다.그러나, 어중간한 정보를 넣고 있던 나는
gulpfile.babel.js
를 준비하면 보통으로 갈 수 있지 않을까? 그리고 착각했습니다.최근에
babel-core
가 버전 변경된 것처럼 6.0.2
가 나왔습니다.이에 따라
babel
의 버전도 6이 된 것 같습니다만, 보통 이것이라면 프리셋이 부족하게 화나게 됩니다다만 에러로부터는 그 내용을 잡을 수 없습니다
(function (exports, require, module, __filename, __dirname) { import gulp from 'gulp'
^^^^^^
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:404:25)
at Object.Module._extensions..js (module.js:432:10)
그래서 issue에 쓰는 사람도 있습니다.
(바사리와 우치의 문제가 아니고, 「babel의 문제다」라고 대답하고 있군요)
그 결과 이쪽의 기사로 유도됩니다.
글쎄, 그 결과 알았던 것은
npm i --save-dev babel-preset-es2015
이런 식으로 작성되었습니다 babel-preset-es2015가 끝난 후
install 한 후 다시 한 번 움직이면
(function (exports, require, module, __filename, __dirname) { import gulp from 'gulp';
^^^^^^
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:404:25)
아직 화난
아직 이해할 수없는 것 같습니다.
그리고 이전 기사는
.babelrc
{
"presets": ["es2015"]
}
내용을 쓸 수 있습니다.
그래서 따릅니다.
최종 파일 구성은 이렇게 되었습니다.
-rw-r--r-- 1 l-03-003 staff 150 11 6 11:54 index.html
drwxr-xr-x 3 l-03-003 staff 102 11 6 11:58 ..
-rw-r--r-- 1 l-03-003 staff 402 11 6 12:13 package.json
drwxr-xr-x 295 l-03-003 staff 10030 11 6 12:13 node_modules
-rw-r--r-- 1 l-03-003 staff 291 11 6 12:51 gulpfile.babel.js
drwxr-xr-x 7 l-03-003 staff 238 11 6 12:54 .
-rw-r--r-- 1 l-03-003 staff 28 11 6 12:54 .babelrc
프리셋도 준비한 설정 파일도 썼다.
[12:27:33] Requiring external module babel-core/register
/Users/l-03-003/Developments/js/gist/test-babel/node_modules/babel-core/lib/transformation/file/index.js:546
throw err;
^
SyntaxError: /Users/l-03-003/Developments/js/gist/test-babel/gulpfile.babel.js: Unexpected token (13:5)
11 | // open: true
12 | // })
> 13 | );
| ^
14 | );
15 |
16 | gulp.task('default', ['serve'])
오, 움직였다!
하지만 에러가 나오는 곳을 잘 모르겠다는 거죠(적어도 자신은 그랬어요)
import gulp from 'gulp'
import gulpWebserver from 'gulp-webserver'
gulp.task('serve', () =>
gulp.src('./')
.pipe(
gulpWebserver({
livereload: true,
port: 8001,
fallback: 'index.html',
open: true
})
); <- ここで問題が起きている
);
gulp.task('default', ['serve'])
원인은 잡히지 않지만이 장소의
;
문제가있는 것 같습니다.지우면 정상적으로 움직였습니다
(
;
는 어디까지 지원해 주고 있는 것일까)$ ./node_modules/.bin/gulp
[12:28:44] Requiring external module babel-core/register
[12:28:44] Using gulpfile ~/Developments/js/gist/test-babel/gulpfile.babel.js
[12:28:44] Starting 'serve'...
[12:28:44] Webserver started at http://localhost:8001
[12:28:44] Finished 'serve' after 44 ms
[12:28:44] Starting 'default'...
[12:28:44] Finished 'default' after 14 μs
이제 다시 자유롭게 개발할 수 있습니다
Reference
이 문제에 관하여(node 4.0 이상 나왔지만, gulpfile.babel.js를 쓰는 법은 무엇인가 바뀌는 거야?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/orange-lion/items/37f21b168b48264a8cea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)