Skip to content

Commit cb257d2

Browse files
yeonjuandvlprsh
andauthored
[tutorials/Gulp] 원본 문서 내용으로 업데이트한 번역 (fixes #31) (#39)
* [tutorials/Gulp] 원본 문서 내용으로 업데이트한 번역(fixes #31) * Update Gulp.md 원문 줄맞춤 수정했습니다~ * Update pages/tutorials/Gulp.md Co-Authored-By: seoheePark <[email protected]> Co-authored-by: seoheePark <[email protected]>
1 parent e8e1670 commit cb257d2

File tree

1 file changed

+61
-62
lines changed

1 file changed

+61
-62
lines changed

Diff for: pages/tutorials/Gulp.md

+61-62
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
이 퀵 스타트 가이드는 [gulp](http://gulpjs.com)로 TypeScript를 빌드한 다음 [Browserify](http://browserify.org), [uglify](http://lisperator.net/uglifyjs) 또는 [Watchify](https://github.com/substack/watchify)를 gulp 파이프 라인에 추가하는 방법을 알려줍니다.
2+
또한 [Babelify](https://github.com/babel/babelify)를 사용하여 [Babel](https://babeljs.io) 기능을 추가하는 방법을 알려줍니다.
23

3-
또한 [Babelify](https://github.com/babel/babelify)를 사용하여 [Babel](https://babeljs.io) 기능에 대한 기능을 추가합니다.
4-
[npm](https://www.npmjs.com)과 함께 [Node.js](https://nodejs.org)는 이미 사용하고 있다고 가정합니다.
4+
[npm](https://www.npmjs.com)[Node.js](https://nodejs.org)는 이미 사용하고 있다고 가정합니다.
55

66
# 작은 프로젝트 (Minimal project)
77

8-
새로운 디렉토리부터 시작합시다.
8+
새로운 디렉터리로 시작합시다.
99
당장은 `proj`라고 이름을 붙이겠지만 원하는 대로 변경할 수 있습니다.
1010

1111
```shell
1212
mkdir proj
1313
cd proj
1414
```
1515

16-
시작하려면 다음과 같은 방식으로 프로젝트를 구조화해야 합니다:
16+
시작하기 위해, 다음과 같이 프로젝트를 구조화해야 합니다:
1717

1818
```text
1919
proj/
@@ -39,20 +39,21 @@ npm init
3939
```
4040

4141
일련의 알림을 받게 될 것입니다.
42-
entry point를 제외하고는 기본값을 사용할 수 있으며 `./dist/main.js`를 사용합니다.
42+
entry point를 제외하고는 기본값을 사용할 수 있습니다.
43+
entry point로 `./dist/main.js`를 사용합니다.
4344
`package.json` 파일로 돌아가서 언제든 변경할 수 있습니다.
4445

4546
## 의존성 설치 (Install our dependencies)
4647

4748
이제는 `npm install`을 사용하여 패키지를 설치할 수 있습니다.
48-
먼저 `gulp-cli`글로벌 설치하십시오 (Unix 시스템을 사용하는 경우 `npm install` 명령 앞에 `sudo`를 붙여야 할 수도 있습니다).
49+
먼저 `gulp-cli`전역으로 설치하십시오 (Unix 시스템을 사용하는 경우 `npm install` 명령 앞에 `sudo`를 붙여야 할 수도 있습니다).
4950

5051
```shell
5152
npm install -g gulp-cli
5253
```
5354

54-
그런 다음 프로젝트의 개발자 의존성에 `typescript`, `gulp``gulp-typescript`를 설치하십시오.
55-
[Gulp-typescript](https://www.npmjs.com/package/gulp-typescript)Typescript의 gulp 플러그인입니다.
55+
그런 다음 프로젝트의 개발 의존성에 `typescript`, `gulp``gulp-typescript`를 설치하십시오.
56+
[Gulp-typescript](https://www.npmjs.com/package/gulp-typescript)TypeScript의 gulp 플러그인입니다.
5657

5758
```shell
5859
npm install --save-dev typescript gulp gulp-typescript
@@ -61,7 +62,6 @@ npm install --save-dev typescript gulp gulp-typescript
6162
## 간단한 예제 작성 (Write a simple example)
6263

6364
Hello World 프로그램을 작성해 보겠습니다.
64-
6565
`src``main.ts` 파일을 만듭니다 :
6666

6767
```ts
@@ -71,7 +71,7 @@ function hello(compiler: string) {
7171
hello("TypeScript");
7272
```
7373

74-
`proj`이라는 프로젝트 루트에 `tsconfig.json` 파일을 생성합니다 :
74+
`proj`이라는 프로젝트 루트에 `tsconfig.json` 파일을 생성합니다:
7575

7676
```json
7777
{
@@ -87,7 +87,7 @@ hello("TypeScript");
8787

8888
## `gulpfile.js` 생성 (Create a `gulpfile.js`)
8989

90-
프로젝트 루트에 `gulpfile.js` 파일을 만듭니다 :
90+
프로젝트 루트에 `gulpfile.js` 파일을 만듭니다:
9191

9292
```js
9393
var gulp = require("gulp");
@@ -101,14 +101,14 @@ gulp.task("default", function () {
101101
});
102102
```
103103

104-
## resulting 앱 테스트 (Test the resulting app)
104+
## 결과 앱 테스트 (Test the resulting app)
105105

106106
```shell
107107
gulp
108108
node dist/main.js
109109
```
110110

111-
프로그램에서 "Hello from TypeScript!"를 인쇄해야합니다.
111+
프로그램은 "Hello from TypeScript!"를 출력해야 합니다.
112112

113113
# 코드에 모듈 추가 (Add modules to the code)
114114

@@ -123,15 +123,15 @@ export function sayHello(name: string) {
123123
}
124124
```
125125

126-
이제 `src/main.ts``sayHello``greet.ts`에서 가져오도록 변경합니다 :
126+
이제 `src/main.ts``sayHello``greet.ts`에서 import 하도록 변경합니다:
127127

128128
```ts
129129
import { sayHello } from "./greet";
130130

131131
console.log(sayHello("TypeScript"));
132132
```
133133

134-
마지막으로 `src/greet.ts``tsconfig.json`에 추가하십시오 :
134+
마지막으로 `src/greet.ts``tsconfig.json`에 추가하십시오:
135135

136136
```json
137137
{
@@ -146,7 +146,7 @@ console.log(sayHello("TypeScript"));
146146
}
147147
```
148148

149-
`gulp`을 실행하고 노드에서 테스트하여 모듈이 작동하는지 확인하십시오 :
149+
`gulp`을 실행하고 Node에서 테스트하여 모듈이 작동하는지 확인하십시오:
150150

151151
```shell
152152
gulp
@@ -158,14 +158,14 @@ ES2015 모듈 구문을 사용했지만 TypeScript는 Node가 사용하는 Commo
158158

159159
# Browserify
160160

161-
이제 이 프로젝트를 노드에서 브라우저로 이동하겠습니다.
161+
이제 이 프로젝트를 Node에서 브라우저로 이동하겠습니다.
162162
이를 위해 모든 모듈을 하나의 JavaScript 파일로 번들링 하고자 합니다.
163163
다행히도 정확히 Browserify가 하는 일입니다.
164164
더 좋은 것은 노드에서 사용하는 CommonJS 모듈 시스템을 TypeScript에서 사용할 수 있다는 것입니다.
165165
즉 TypeScript와 Node 설정이 기본적으로 변경되지 않은 브라우저로 전송되는 것을 의미합니다.
166166

167167
먼저 browserify, [tsify](https://www.npmjs.com/package/tsify) 및 vinyl-source-stream을 설치하십시오.
168-
tsify는 gulp-typescript처럼 Typeify 컴파일러에 접근할 수 있는 Browserify 플러그인입니다.
168+
tsify는 gulp-typescript처럼 TypeScript 컴파일러에 접근할 수 있는 Browserify 플러그인입니다.
169169
vinyl-source-stream을 사용하면 Browserify의 파일 출력을 gulp에서 [vinyl](https://github.com/gulpjs/vinyl)으로 인식하는 형식으로 다시 변환할 수 있습니다.
170170

171171
```shell
@@ -190,7 +190,7 @@ npm install --save-dev browserify tsify vinyl-source-stream
190190
</html>
191191
```
192192

193-
이제 `main.ts`변경하여 페이지를 업데이트하십시오 :
193+
이제 페이지를 업데이트하기 위해 `main.ts`변경합니다:
194194

195195
```ts
196196
import { sayHello } from "./greet";
@@ -207,20 +207,20 @@ showHello("greeting", "TypeScript");
207207
이제 gulpfile을 다음과 같이 변경하십시오 :
208208

209209
```js
210-
var gulp = require("gulp");
211-
var browserify = require("browserify");
210+
var gulp = require('gulp');
211+
var browserify = require('browserify');
212212
var source = require('vinyl-source-stream');
213-
var tsify = require("tsify");
213+
var tsify = require('tsify');
214214
var paths = {
215215
pages: ['src/*.html']
216216
};
217217

218-
gulp.task("copy-html", function () {
218+
gulp.task('copy-html', function () {
219219
return gulp.src(paths.pages)
220-
.pipe(gulp.dest("dist"));
220+
.pipe(gulp.dest('dist'));
221221
});
222222

223-
gulp.task("default", ["copy-html"], function () {
223+
gulp.task('default', gulp.series(gulp.parallel('copy-html'), function () {
224224
return browserify({
225225
basedir: '.',
226226
debug: true,
@@ -231,8 +231,8 @@ gulp.task("default", ["copy-html"], function () {
231231
.plugin(tsify)
232232
.bundle()
233233
.pipe(source('bundle.js'))
234-
.pipe(gulp.dest("dist"));
235-
});
234+
.pipe(gulp.dest('dist'));
235+
}));
236236
```
237237

238238
`copy-html` 태스크를 추가하고 `default`의 의존성으로 추가합니다.
@@ -242,14 +242,14 @@ gulp.task("default", ["copy-html"], function () {
242242

243243
`bundle`을 호출한 후 `source`(vinil-source-stream에 대한 별칭)를 사용하여 출력 번들 `bundle.js`의 이름을 지정합니다.
244244

245-
gulp를 실행하고 브라우저에서 `dist/index.html`을 열어 페이지를 테스트하십시오.
245+
gulp를 실행하고 브라우저에서 `dist/index.html`을 열어 페이지를 확인하세요.
246246
페이지에 "Hello from TypeScript"가 표시되어야 합니다.
247247

248248
Browserify에 `debug : true`를 지정한 것에 주목하십시오.
249-
이로 인해 tsify는 번들 JavaScript 파일 내에서 소스맵을 내보냅니다.
249+
이로 인해 tsify는 번들된 JavaScript 파일 안에 소스 맵을 내보냅니다.
250250
소스 맵을 사용하면 번들로 제공된 JavaScript 대신 브라우저에서 원본 TypeScript 코드를 디버깅할 수 있습니다.
251-
브라우저의 디버거를 열고 `main.ts` 안에 브레이크포인트을 넣으면 소스 맵이 작동하는지 테스트할 수 있습니다.
252-
페이지를 새로 고침 할 때 브레이크포인트가 페이지를 일시 중지하고 `greet.ts`를 디버깅 할 수 있도록 해야 합니다.
251+
브라우저의 디버거를 열고 `main.ts` 안에 브레이크 포인트을 넣으면 소스 맵이 작동하는지 테스트할 수 있습니다.
252+
페이지를 새로 고침 하면 브레이크 포인트가 페이지를 일시 중지하고 `greet.ts`를 디버깅 할 수 있어야 합니다.
253253

254254
# Watchify, Babel, and Uglify
255255

@@ -268,18 +268,18 @@ Browserify에 `debug : true`를 지정한 것에 주목하십시오.
268268
Watchify로 백그라운드 컴파일을 시작하겠습니다 :
269269

270270
```shell
271-
npm install --save-dev watchify gulp-util
271+
npm install --save-dev watchify fancy-log
272272
```
273273

274274
이제 gulpfile을 다음과 같이 변경하십시오 :
275275

276276
```js
277-
var gulp = require("gulp");
278-
var browserify = require("browserify");
277+
var gulp = require('gulp');
278+
var browserify = require('browserify');
279279
var source = require('vinyl-source-stream');
280-
var watchify = require("watchify");
281-
var tsify = require("tsify");
282-
var gutil = require("gulp-util");
280+
var watchify = require('watchify');
281+
var tsify = require('tsify');
282+
var fancy_log = require('fancy-log');
283283
var paths = {
284284
pages: ['src/*.html']
285285
};
@@ -292,37 +292,37 @@ var watchedBrowserify = watchify(browserify({
292292
packageCache: {}
293293
}).plugin(tsify));
294294

295-
gulp.task("copy-html", function () {
295+
gulp.task('copy-html', function () {
296296
return gulp.src(paths.pages)
297-
.pipe(gulp.dest("dist"));
297+
.pipe(gulp.dest('dist'));
298298
});
299299

300300
function bundle() {
301301
return watchedBrowserify
302302
.bundle()
303+
.on('error', fancy_log)
303304
.pipe(source('bundle.js'))
304-
.pipe(gulp.dest("dist"));
305+
.pipe(gulp.dest('dist'));
305306
}
306307

307-
gulp.task("default", ["copy-html"], bundle);
308-
watchedBrowserify.on("update", bundle);
309-
watchedBrowserify.on("log", gutil.log);
308+
gulp.task('default', gulp.series(gulp.parallel('copy-html'), bundle));
309+
watchedBrowserify.on('update', bundle);
310+
watchedBrowserify.on('log', fancy_log);
310311
```
311312

312313
여기에는 기본적으로 세 가지 변경 사항이 있지만 코드를 약간 리팩토링해야합니다.
313314

314315
1. `watchify`에 대한 호출에서 `browserify` 인스턴스를 감싸고 그 결과를 유지했습니다.
315-
2. `watchedBrowserify.on("update", bundle);`을 호출하여 Browserify 가 TypeScript 파일 중 하나가 변경될 때마다 `bundle` 함수를 실행하도록 했습니다.
316-
3. `watchedBrowserify.on("log", gutil.log);`을 호출하여 콘솔에 로그했습니다.
316+
2. `watchedBrowserify.on('update', bundle);`을 호출하여 Browserify 가 TypeScript 파일 중 하나가 변경될 때마다 `bundle` 함수를 실행하도록 했습니다.
317+
3. `watchedBrowserify.on('log', fancy_log);`을 호출하여 콘솔에 기록했습니다.
317318

318319
(1)과 (2)는 `default` 작업에서 `browserify`를 호출해야 한다는 것을 의미합니다.
319320
Watchify와 Gulp 모두 호출해야 하기 때문에 `default` 함수에 이름을 주어야 합니다.
320321
(3)을 사용한 로깅을 추가하는 것은 선택 사항이지만 설정을 디버깅하는 데 매우 유용합니다.
321322

322323
이제 Gulp를 실행하면 시작해야 하고 계속 실행됩니다.
323324
`main.ts`에서 `showHello`에 대한 코드를 변경하고 저장하십시오.
324-
325-
다음과 같은 출력이 표시되어야 합니다 :
325+
다음과 같은 출력이 표시되어야 합니다:
326326

327327
```shell
328328
proj$ gulp
@@ -348,23 +348,23 @@ npm install --save-dev gulp-uglify vinyl-buffer gulp-sourcemaps
348348
이제 gulpfile을 다음과 같이 변경하십시오 :
349349

350350
```js
351-
var gulp = require("gulp");
352-
var browserify = require("browserify");
351+
var gulp = require('gulp');
352+
var browserify = require('browserify');
353353
var source = require('vinyl-source-stream');
354-
var tsify = require("tsify");
354+
var tsify = require('tsify');
355355
var uglify = require('gulp-uglify');
356356
var sourcemaps = require('gulp-sourcemaps');
357357
var buffer = require('vinyl-buffer');
358358
var paths = {
359359
pages: ['src/*.html']
360360
};
361361

362-
gulp.task("copy-html", function () {
362+
gulp.task('copy-html', function () {
363363
return gulp.src(paths.pages)
364-
.pipe(gulp.dest("dist"));
364+
.pipe(gulp.dest('dist'));
365365
});
366366

367-
gulp.task("default", ["copy-html"], function () {
367+
gulp.task('default', gulp.series(gulp.parallel('copy-html'), function () {
368368
return browserify({
369369
basedir: '.',
370370
debug: true,
@@ -379,8 +379,8 @@ gulp.task("default", ["copy-html"], function () {
379379
.pipe(sourcemaps.init({loadMaps: true}))
380380
.pipe(uglify())
381381
.pipe(sourcemaps.write('./'))
382-
.pipe(gulp.dest("dist"));
383-
});
382+
.pipe(gulp.dest('dist'));
383+
}));
384384
```
385385

386386
`uglify` 자체에는 하나의 호출만 있습니다 &mdash; `buffer``sourcemaps`에 대한 호출은 sourcemaps이 계속 작동하는지 확인하기 위해 존재합니다.
@@ -399,7 +399,7 @@ Uglify처럼 Babelify도 코드를 엉망으로 만들기 때문에 vinyl-buffer
399399
기본적으로 Babelify는 확장자가 `.js`, `.es`, `.es6``.jsx` 인 파일만 처리하므로 Babelify에 옵션으로 `.ts` 확장자를 추가해야 합니다.
400400

401401
```shell
402-
npm install --save-dev babelify babel-core babel-preset-es2015 vinyl-buffer gulp-sourcemaps
402+
npm install --save-dev babelify@8 babel-core babel-preset-es2015 vinyl-buffer gulp-sourcemaps
403403
```
404404

405405
이제 gulpfile을 다음과 같이 변경하십시오 :
@@ -415,12 +415,12 @@ var paths = {
415415
pages: ['src/*.html']
416416
};
417417

418-
gulp.task('copyHtml', function () {
418+
gulp.task('copy-html', function () {
419419
return gulp.src(paths.pages)
420420
.pipe(gulp.dest('dist'));
421421
});
422422

423-
gulp.task('default', ['copyHtml'], function () {
423+
gulp.task('default', gulp.series(gulp.parallel('copy-html'), function () {
424424
return browserify({
425425
basedir: '.',
426426
debug: true,
@@ -439,13 +439,12 @@ gulp.task('default', ['copyHtml'], function () {
439439
.pipe(sourcemaps.init({loadMaps: true}))
440440
.pipe(sourcemaps.write('./'))
441441
.pipe(gulp.dest('dist'));
442-
});
442+
}));
443443
```
444444

445445
TypeScript 대상 ES2015도 필요합니다.
446446
Babel은 TypeScript에서 내보내는 ES2015 코드에서 ES5를 생성합니다.
447-
448-
`tsconfig.json`을 수정합시다 :
447+
`tsconfig.json`을 수정합시다:
449448

450449
```json
451450
{
@@ -459,4 +458,4 @@ Babel은 TypeScript에서 내보내는 ES2015 코드에서 ES5를 생성합니
459458
}
460459
```
461460

462-
Babel의 ES5 출력은 간단한 스크립트에 대한 TypeScript의 출력과 매우 유사해야 합니다.
461+
간단한 스크립트의 경우 Babel의 ES5 결과물은 TypeScript의 결과물과 거의 같아야 합니다.

0 commit comments

Comments
 (0)