翻蚳è
ããïŒ
ããã«ã¡ã¯ãHabrïŒ æçšãªéçºããã³èšèšè³æãã³ãã¥ããã£ãšå
±æãç¶ããŠããŸãã ä»åã TrackDuckããŒã ã¯ãAngularã«é¢ããJeff Dickeyã®èšäºã®ç¿»èš³ãæºåããŸããã ãã®èšäºã¯ãæ¥åžžæ¥åã®æéãç¯çŽããWebã¢ããªã±ãŒã·ã§ã³ãéçºããããã®é«å質ãªããã»ã¹ãæ§ç¯ãããéçºè
ã«åœ¹ç«ã¡ãŸãã ç§ãã¡ã¯ç©æ¥µçã«Angularã䜿çšããŠããŠã§ããµã€ãäžã§èŠèŠçã«ã³ã¡ã³ãããããã®ç¬èªã®è£œåãéçºããŠããŸãã

ç§ã¯ããªãå€æ°ã®ã¢ããªã±ãŒã·ã§ã³ã§Angularã䜿çšãããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå€ãã®æ¹æ³ãèŠãŸããã çŸåšãMEANã¹ã¿ãã¯ã䜿çšããAngularã¢ããªã±ãŒã·ã§ã³ã®èšèšã«é¢ããæ¬ãå·çããŠããããã®æ¹åã§ã»ãšãã©ã®ç 究ãè¡ã£ãŠããŸãã ãã®çµæãã¢ããªã±ãŒã·ã§ã³ã®ããªãç¬åµçãªæ§é ã«æ±ºããŸããã ç§ã®ã¢ãããŒãã¯ã
ããŒã¯ã»ãã©ã³ããææ¡ãããã®ãããç°¡åã§ãã
å§ããåã«ãAngularã§ã®ã¢ãžã¥ãŒã«æ§ã®å®è£
ã«å¯Ÿããæ¢åã®ã¢ãããŒãã«ã€ããŠã話ããããšæããŸãã
JavaScriptã®ã¢ãžã¥ãŒã«ãšã¯
JavaScriptã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããã©ã«ãã§ã¢ãžã¥ãŒã«ãããŒãããæ©èœããããŸããã ãŸãã誰ããç¬èªã®æ¹æ³ã§ãããç解ã§ããããããã¢ãžã¥ãŒã«ããšã¯äœããç解ããŸãããã
ãã®ã¢ãžã¥ãŒã«ã«ãããéçºè
ã¯ã¢ããªã±ãŒã·ã§ã³ãè«ççãªéšåã«åå²ã§ããŸãã ãŸããJavaScriptã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãã¢ãžã¥ãŒã«ã«åå²ããããšã«ãããã°ããŒãã«å€æ°ã®ç«¶åãåé¿ãããŸãã
JavaScriptã®åå¿è
ã¯ãã¢ãžã¥ãŒã«ã«å€ãã®æ³šæãæãããŠããããšã«é©ããããããŸããã ããã«æ³šæãããã®ã¯ãã¢ãžã¥ãŒã«ã®äž»ãªç®çã¯ãã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ãã®èªã¿èŸŒã¿ã®é
延èªã¿èŸŒã¿ãæŽçããããšã§ã¯ãªããšããããšã§ãã Require.jsã§ã¯ãããå®è£
ã§ããŸãããããã¯ã¢ãžã¥ãŒã«ã®äž»èŠãªãã®ã§ã¯ãããŸããã
ãã®ããããã§ã«è¿°ã¹ãããã«ãJSã¯ã¢ãžã¥ãŒã«ããµããŒãããŠããªããããæéã®çµéãšãšãã«ããã®åé¡ã解決ããããã€ãã®æ¹æ³ãç»å ŽããŸããã JSã®ã¢ãžã¥ãŒã«åã®çµç¹ã«ãã§ã«ç²ŸéããŠããå Žåã¯ã次ã®ã»ã¯ã·ã§ã³ãã¹ãããã§ããŸãã
.noConflictïŒïŒ
åé¡ã説æããããšæããŸãããããžã§ã¯ãã«jQueryãå«ããããšããŸãã jQueryã¯ã°ããŒãã«å€æ°ã$ããå®çŸ©ããå¿
èŠããããŸãã ãã®ååã®å€æ°ããã§ã«ã³ãŒãã§äœ¿çšãããŠããå Žåãèªç¶ã«å€æ°ã®ç«¶åãçºçããŸãã ãã®åé¡ã¯éåžžã.noConflictïŒïŒé¢æ°ã䜿çšããŠè§£æ±ºãããŸãã ç°¡åã«èšãã°ã.noConflictïŒïŒã䜿çšãããšãã©ã€ãã©ãªã«äœ¿çšããå€æ°ã®ååãå€æŽã§ããŸãã
<script> var $ = 'myobject that jquery will conflict with' </script> <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script> <script> </script>
ããã¯ããªãäžè¬çãªãœãªã¥ãŒã·ã§ã³ã§ãããã»ãšãã©ã®JavaScriptã©ã€ãã©ãªã«ãšã£ãŠæã䟿å©ãªãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸããã ã³ãŒããé©åã«åé¢ããããšã¯ã§ããŸããã䜿çšããåã«ã¢ãžã¥ãŒã«ã宣èšããå¿
èŠããããæ¬è³ªçã«ãã®ã¢ãããŒãã§ã¯ã.noConflictïŒïŒã«äŒŒãã¡ãœãããå床䜿çšããå¿
èŠããããŸãã
.noConflicté¢æ°ã«é¢ãã質åããŸã ããå Žåã¯ããªã³ã¯ããã©ã£ãŠãã®
圹ç«ã€è³æãèªãã§ãã ããã
ãã®åé¡ã«ã¯å¥ã®è§£æ±ºçããããŸããäž»ãª4ã€ã®åéã«ã€ããŠã話ããããšæããŸãã
- Require.jsïŒAMDã®å®è£
ïŒ
- BrowserifyïŒCommonJSã®å®è£
ïŒ
- è§åºŠäŸåæ§æ³šå
¥
- ES6ã¢ãžã¥ãŒã«
ããããã«ç¬èªã®ç¹æ§ããã©ã¹ãšãã€ãã¹ããããŸãã ãããã®ãœãªã¥ãŒã·ã§ã³ã®ããã€ããåæã«äœ¿çšããããšãã§ããŸãïŒããšãã°ã
Burke Hollandã¯2ã€äœ¿çšããŸãïŒã ããããã®ãœãªã¥ãŒã·ã§ã³ãèŠãŠã¿ãŸãããã
ãµã³ãã«ã¢ããª
Angularã§å°ããªã¢ããªã±ãŒã·ã§ã³ãäœæããå®éã®äŸãç解ããŠã¿ãŸãããã
æ¢è£œã®ã³ãŒããå«ãGitHubãªããžããªãžã®ãªã³ã¯ã次ã«ç€ºã
ãŸã ã 䟿å®äžã1ã€ã®app.jsãã¡ã€ã«ã§JavaScriptã®æäœãéå§ããŸãããã
var app = angular.module('app', []) app.factory('GithubSvc', function ($http) { return { fetchStories: function () { return $http.get('https://api.github.com/users') } } }) app.controller('GithubCtrl', function ($scope, GithubSvc) { GithubSvc.fetchStories().success(function (users) { $scope.users = users }) })
ãªããžã§ã¯ã 'app'ãå®çŸ©ããŸã-ãããç§ãã¡ã®ã¢ãžã¥ãŒã«ã§ãã 次ã«ãGitHubãŠãŒã¶ãŒãååŸããã®ã«åœ¹ç«ã€åäžã®é¢æ°ã§ãGithubSvcããµãŒãã¹ãå®çŸ©ããŸãã
æåŸã«ããµãŒãã¹ã䜿çšããŠã$ã¹ââã³ãŒãã«ããé
åã«ãŠãŒã¶ãŒãããŒãããã³ã³ãããŒã©ãŒãå®çŸ©ããŸãã ãªã¹ãã衚瀺
ãããã³ãã¬ãŒãã
次ã«ç€ºããŸãã
åå¥ã®ãã¡ã€ã«ãžã®åé¢
åé¡ã¯ãçŸåšã®ã³ãŒãã1ã€ã®ãã¡ã€ã«å
ã«ãããå®éã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯å®å
šã«é©çšã§ããªãããšã§ãã ç§ãAngularãšç¥ãåã£ãæåãããã³ãŒãäŸãèŠããã³ã«ãå®éã«äœ¿çšãããããçŸå®çãªãã¡ã€ã«å
±æã³ãŒããèŠãããšæã£ãŠããŸããã
ãã®äŸã§ã¯ã次ã®æ§é ãææ¡ããŸãã
- src / module.js
- src / github / github.svc.js
- src / github / github.ctrl.js
ã¢ããªã±ãŒã·ã§ã³ãå°ããå Žåã¯ãå¥ã®æ¹æ³ã§ãã¡ã€ã«ãåå²ããŸãã
- src / module.js
- src / services / github.svc.js
- src / controllers / github.ctrl.js
ãããã«ãããbrowserifyãrequire.jsãªã©ã®ã¢ãžã¥ãŒã«ã䜿çšããã«ãscriptã¿ã°ã䜿çšããŠãããã®åãã¡ã€ã«ãå«ããå¿
èŠããããŸãã ã³ãŒããæ°çŸã®ãã¡ã€ã«ã«ç°¡åã«æé·ãããã®æ¹æ³ã§æ¥ç¶ã管çããã®ã¯ç°¡åã§ã¯ãªãããšãç解ããããšãéèŠã§ãã
æ¥ç¶ããããã¡ã€ã«ã®æ°ãå€ããšãããã©ãŒãã³ã¹ã®åé¡ãçºçããŸããã¢ããªã±ãŒã·ã§ã³ãããŒããããšãããã©ãŠã¶ã¯åæã«ãµãŒããŒãžã®å€ãã®æ¥ç¶ã確ç«ããå¿
èŠããããŸãã ã€ã³ã¿ãŒãããæ¥ç¶ãé
ãå ŽåããŠãŒã¶ãŒã¯åé¡ã«çŽé¢ããããŠã³ããŒãæéãé·ããªããŸãã
éçºè
ãå€æ°ã®jsãã¡ã€ã«ãæ¥ç¶ã§ããããã«ããæ¹æ³ãå¿
èŠã§ãããåæã«ïŒscriptã¿ã°ãä»ããŠæ¥ç¶ããã«ïŒãã©ãŠã¶ã«ããŠã³ããŒãããªãã§ãã ããã
ãã®ããã人ã
ã¯require.jsãŸãã¯browserifyã¢ãžã¥ãŒã«ããŒããŒã䜿çšããŸãã Angularã§ã¯ãã³ãŒããè«ççã«åå²ã§ããŸããããã¡ã€ã«ã¯åå²ã§ããŸããã ãã£ãšç°¡åãªè§£æ±ºçã瀺ãããã®ã§ãããæåã«ãã¢ãžã¥ãŒã«ã®ããŒããå¶åŸ¡ããããã®ããç¥ãããæ¹æ³ãèŠãŠã¿ãŸãããã
Require.js-éåžžã«é£ãã
Require.jsã¯ãJavaScriptã§ã¢ãžã¥ãŒã«ã䜿çšããæåã®è©Šã¿ã§ããã ãã®ãœãªã¥ãŒã·ã§ã³ã«ãããjsãã¡ã€ã«å
ã§çŽæ¥äŸåé¢ä¿ãå€å¥ãããã©ãŠã¶ãŒã§å®è¡ããå¿
èŠã«å¿ããŠã¢ãžã¥ãŒã«ãããŒãã§ããŸãã
ãããã£ãŠããã®ã©ã€ãã©ãªã«ãããjsããã¢ãžã¥ãŒã«ãããŒãããããŒãé ã決å®ãããšãã2ã€ã®ç®æšãäžåºŠã«éæã§ããŸãã
æ®å¿µãªããããã®ã©ã€ãã©ãªã¯æ¥ç¶ãšæ§æãéåžžã«å°é£ã§ãã ç¹å®ã®æ¹æ³ã§èšè¿°ãããã³ãŒããå¿
èŠã§ãããããã°ã©ããŒã«ãšã£ãŠéåžžã«é«ãå
¥åãããå€ããããŸãã ããã«ã埪ç°äŸåé¢ä¿ãååã«åŠçããããšã¯ã§ããŸããã ãã®ã©ã€ãã©ãªã䜿çšããŠAngularã¢ããªã±ãŒã·ã§ã³ã®ã¢ãžã¥ãŒã«åŒãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããããšãããšãåé¡ãçºçããå¯èœæ§ããããŸãã
ãã®ã¬ãã¥ãŒã§ require.jsã®è©³çŽ°ãèªãããšãã§ã
ãŸã ã
require.jsããªã³ããã³ãã§ã¢ãžã¥ãŒã«ãããŒãããæ©èœã¯ãAngularã§ã¯æ©èœããŸããã çŸå®ã«ã¯ããã®ãããªããŒãºã®ãããããžã§ã¯ãã§åããããšã¯ãããŸãããã ããã«ããã®æ©èœã¯Angularéçºè
ã«ãšã£ãŠéèŠã§ã¯ãªãããšãããäžåºŠåŒ·èª¿ããããšæããŸãã ã³ãŒããè«ççãªéšåã«æ£ããåå²ã§ããããšãã¯ããã«éèŠã§ãã
Browserify âåªããã¢ãžã¥ãŒã«ããŒããŒ
ãã©ãŠã¶ãŒã䜿çšããŠã¢ãžã¥ãŒã«ãããŒãããrequire.jsãšã¯ç°ãªããbrowserifyã¯ãã©ãŠã¶ãŒã§å®è¡ãéå§ããåã«ãµãŒããŒäžã®ã³ãŒããåŠçããŸãã browserifyãã¡ã€ã«ãååŸããŠããã©ãŠã¶ãŒã§å®è¡ããããšã¯ã§ããŸããã ãŸãããããã±ãŒãžããäœæããå¿
èŠããããŸãã
ããã±ãŒãžã¯ãnode.jsã¢ãžã¥ãŒã«ã«äŒŒã圢åŒã䜿çšããŸãïŒããã«ãã»ãŒåžžã«äºææ§ããããŸãïŒã 次ã®ããã«ãªããŸãã
var moduleA = require('my-module') var moduleB = require('your-module') moduleA.doSomething(moduleB)
æ¬åœã«äŸ¿å©ã§èªã¿ãããããã«èŠããŸãã å€æ°ã宣èšãããããåç
§ããã¢ãžã¥ãŒã«ã«ãrequireïŒïŒãããã ãã§ãã ã¢ãžã¥ãŒã«ããšã¯ã¹ããŒãããã³ãŒããæžãã®ã¯ãšãŠãç°¡åã§ãã
Nodeã§ã¯ããã¹ãŠã®ãã©ã°ã€ã³ããã¡ã€ã«ã·ã¹ãã äžã«ãããããŒãã«ã»ãšãã©æéãããããªããããããã¯ããŸãæ©èœããŸãã
ãããã£ãŠãbrowserifyã䜿çšãããšãã³ãŒããå®è¡ã§ãããã¹ãŠã®ãã¡ã€ã«ã1ã€ã®ããã±ãŒãžã«åéããããã©ãŠã¶ãŒã§å®å
šã«äœ¿çšã§ããŸãã
ãã®èšäºã§ browserifyã®è©³çŽ°ãèªãã§
ãã ãã ã
ããã¯ãAngularã䜿çšããªããããžã§ã¯ãã§äœ¿çšã§ããåªããããŒã«ã§ãã Angularã®å Žåãããã«ç°¡åãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
è§åºŠäŸåæ§æ³šå
¥-ã»ãšãã©ã®åé¡ã解決ããŸã
æ»ã£ãŠapp.jsãèŠãŠã¿ãŸãããã ãã®ç¹ã«æ³šæãããïŒ
ãµãŒãã¹ãšã³ã³ãããŒã©ãŒãäœæããé åºã¯é¢ä¿ãããŸããã Angularã¯ãå
éšã¡ã«ããºã ã䜿çšããŠãã¹ãŠã®äŸåé¢ä¿ãåŠçããŸãã
ãã®ã¡ãœããã䜿çšããå Žåããappããªããžã§ã¯ããæäœããã«ã¯ãã¢ãžã¥ãŒã«ãããã°ã©ã ã®å
é ã§å®£èšãããŠããããšã確èªããå¿
èŠããããŸãã ããã¯ããã¹ãŠã®JavaScriptãã¡ã€ã«ãããŒãžãããããAngularã§ã®å®£èšã®é åºãéèŠãªå¯äžã®å Žæã§ãã
ã¬ã«ãã³ã³ã«ãã
JSãã¡ã€ã«ãããŒãžããã«ã¯ãGulpã䜿çšããŸãã æ°ããããŒã«ãåŠã¶å¿
èŠæ§ã«ã€ããŠå¿é
ããå¿
èŠã¯ãããŸãããç§ã¯ãããéåžžã«ç°¡åãªæ¹æ³ã§äœ¿çšããGruntãMakeããŸãã¯ããªããæ
£ããŠãããŠãŒãã£ãªãã£ã«ç°¡åã«ç§»æ€ã§ããŸãã ãã¡ã€ã«ã®ããŒãžãèªååããã®ã«åœ¹ç«ã€ãã®ãå¿
èŠã§ãã
ç§ã¯ééããªãç§ã®ãæ°ã«å
¥ãã®ãã¹ãŠã®ææ°ã®ãã«ãã·ã¹ãã ãšGulpãè©ŠããŸããã JSãŸãã¯CSSã䜿çšããå Žåãéåžžã«å¹æçã§ãã
ãããã«ãããŒã«ïŒbrowserifyïŒãå¥ã®ãã«ãããŒã«ïŒGulpïŒã«çœ®ãæããããšæããããããŸããããããªãã¯æ£ããã§ãããã ããããGulpã¯ããåºç¯ãªã¿ã¹ã¯ã解決ã§ããŸãã Gulpãæ§æããã³äœ¿çšããŠããããã¡ã€ãCoffeeScriptããªã³ã³ãã€ã«ããœãŒã¹ãããçæãç»ååŠçãscssãŸãã¯sassã³ã³ãã€ã«ãnode.jsã§ã®devãµãŒããŒã®å®è¡ãªã©ã®ã¿ã¹ã¯ãå®è¡ã§ããŸãã ãããã¯ãã¹ãŠããããžã§ã¯ããããã«æ¡å€§ããããã®ãã©ãããã©ãŒã ãæäŸããŸãã
ãŸããGulpãšGulp-concatãã€ã³ã¹ããŒã«ããŸã
$ npm install --global gulp $ npm install --save-dev gulp gulp-concat
ãããžã§ã¯ãã«package.jsonãã¡ã€ã«ãäœæããnode.jsãã€ã³ã¹ããŒã«ããŸãã 以äžã«ãæ°ãããããžã§ã¯ããåæåããã®ã«åœ¹ç«ã€ã¡ãã£ãšããããªãã¯ã瀺ããŸãã
$ echo '{}' > package.json
次ã«ãgulpfile.jsãã¡ã€ã«ãäœæããŸãã
var gulp = require('gulp') var concat = require('gulp-concat') gulp.task('js', function () { gulp.src(['src/**/module.js', 'src/**/*.js']) .pipe(concat('app.js')) .pipe(gulp.dest('.')) })
ããã¯ã/ srcãã£ã¬ã¯ããªã®JavaScriptãã¡ã€ã«ãapp.jsã«çµåããåçŽãªã¿ã¹ã¯ã§ãã JSãã¡ã€ã«ã¯ããã®ãããªé åºã§ãªã¹ããããŠããŸããçç±ã¯ããã®ãããªã¬ã³ãŒããã¡ã€ã«*ã䜿çšããŠããããã§ãã module.jsãæåã«å«ãŸããŸãã ããã«ã€ããŠã¯ããããã¡ã€ã«ã€ããŠè©³ããèŠãŠãããŸãã
Gulpã§é£çµãè©ŠããŠã¿ããå Žåã¯ã
ãããã®ãã¡ã€ã«ã
ããŒãã ããgulp jsãã³ãã³ããå®è¡ããŠå®è¡ããŠãã ããã
ç§ã®èšäºãèªããšã Gulpã®è©³çŽ°ãç¥ãããšãã§ããŸãã
ã¬ã«ããŠã©ãã
ããã¯éåžžã«ã·ã³ãã«ã§ãã³ãŒãã¯ããèªäœãç©èªã£ãŠããŸãïŒ
var gulp = require('gulp') var concat = require('gulp-concat') gulp.task('js', function () { gulp.src(['src/**/module.js', 'src/**/*.js']) .pipe(concat('app.js')) .pipe(gulp.dest('.')) }) gulp.task('watch', ['js'], function () { gulp.watch('src/**/*.js', ['js']) })
ããã§ã¯ã 'src / ** / *ãJs'ã®JavaScriptãã¡ã€ã«ãå€æŽããããã³ã«ã¿ã¹ã¯ 'js'ãå®è¡ããæ°ããã¿ã¹ã¯ 'gulp watch'ãè¿œå ããŸãã åºæ¥äžãããç§ãã¡ã¯ã«ãŒãã³ãåãé€ããŸããïŒ
çž®å°
ã³ãŒããçž®å°ããæãæ¥ãŸããã Gulpã§ã¯ãè€æ°ã®ã¢ãžã¥ãŒã«ïŒæå°åãé£çµãªã©ïŒã䜿çšããŠåŠçããå¿
èŠããããœãŒã¹ãã¡ã€ã«ã®ã¹ããªãŒã ãäœæããä¿åããŸãã
gulp-uglifyããå§ããŸãããã ãŸããnpmã䜿çšããŠã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
npm install -D gulp-uglify
次ã«ãgulpãã¡ã€ã«ãè¿œå ããŸãããã
var gulp = require('gulp') var concat = require('gulp-concat') var uglify = require('gulp-uglify') gulp.task('js', function () { gulp.src(['src/**/module.js', 'src/**/*.js']) .pipe(concat('app.js')) .pipe(uglify()) .pipe(gulp.dest('.')) })
ããããåé¡ããããŸãã Angularé¢æ°ã®åŒæ°åãèªèããGulp-uglifyã¯ãäŸåé¢ä¿ã泚å
¥ããå¿
èŠããããŸãã çŸåšãã¢ããªã±ãŒã·ã§ã³ã¯æ©èœããŸããã ãã®åé¡ã«æ
£ããŠããªãå Žåã¯ããèªã¿ãã ããã
docs.angularjs.org/guide/diã³ãŒããŸãã¯ãã°ãããããŒã«ã§é
åã®ããã°ãæ§æã䜿çšã§ããŸãïŒ
ng-gulp-annotateã€ã³ã¹ããŒã«ããŠãã ããïŒ
npm install -D gulp-ng-annotate
ãããŠãgulpfileãè£å®ããŸãã
var gulp = require('gulp') var concat = require('gulp-concat') var uglify = require('gulp-uglify') var ngAnnotate = require('gulp-ng-annotate') gulp.task('js', function () { gulp.src(['src/**/module.js', 'src/**/*.js']) .pipe(concat('app.js')) .pipe(ngAnnotate()) .pipe(uglify()) .pipe(gulp.dest('.')) })
Gulpã®äŸ¡å€ã確èªããŠãã ããã
ãœãŒã¹ããã
ã»ãšãã©ã®äººããããã°ã䜿çšããŠã³ãŒãã®åé¡ã蚺æããŸãã åé¡ã¯ãçž®å°ãããJavaScriptããããã°ã§ããªãããšã§ãã ãã®ããã«ãã³ãŒããããã䜿çšãããŸãïŒãœãŒã¹ãããïŒã ããããçæããã®ã«åœ¹ç«ã€Gulpãã©ã°ã€ã³ã¯æ¬¡ã®ãšããã§ãã
gulp-sourcemapsãã€ã³ã¹ããŒã«ããŸãã
npm install -D gulp-sourcemaps
ãããŠãgulpfileã«é©åãªè¡šèšãè¿œå ããŸãã
var gulp = require('gulp') var concat = require('gulp-concat') var sourcemaps = require('gulp-sourcemaps') var uglify = require('gulp-uglify') var ngAnnotate = require('gulp-ng-annotate') gulp.task('js', function () { gulp.src(['src/**/module.js', 'src/**/*.js']) .pipe(sourcemaps.init()) .pipe(concat('app.js')) .pipe(ngAnnotate()) .pipe(uglify()) .pipe(sourcemaps.write()) .pipe(gulp.dest('.')) })
é£çµãåªããŠããçç±
äœããããŸãç°¡åã ããã§ãã Angularã¯ãã¹ãŠã®ããŠã³ããŒãã³ãŒããåŠçããŸãããã¡ã€ã«ãæäŒãã ãã§ãã
ãŸããæ°ãããã¡ã€ã«ãäœæãããšãã«ãæ¢åã®ãã¡ã€ã«ãšäžç·ã«ãã£ã¬ã¯ããªã«è¿œå ããã ãã§ååã§ãããããéåžžã«å¹æçã§ãã ããšãã°browserifyã®ããã«ããããã®ãã¡ã€ã«ã®è¿œå 宣èšã¯ã©ãã«ãå¿
èŠãããŸããã require.jsã«ãã£ãäŸåé¢ä¿ã¯ãããŸãã
å®éããã¹ãç¯ãå¯èœæ§ã®ããå Žæãå°ãªãã»ã©ããšã©ãŒã¯å°ãªããªããŸãã
ãŸãšã
ãããæçµã³ãŒãã§ãã ããã¯ç°¡åã«Angularã¢ããªãæ§ç¯ããããã®åºçºç¹ã«ãªããŸãã
- ããæ§æãããŠããŸãã
- JSã¯èªåçã«çž®å°ãããŸãã
- ãœãŒã¹ã³ãŒããããããããŸãã
- ã°ããŒãã«å€æ°ã¯ãããŸããã
- åé·ã¹ã¯ãªããã¿ã°ã¯äœ¿çšãããŸããã
- ãã«ãã®ã»ããã¢ããã¯éåžžã«ç°¡åã§ãã
åè¿°ã®ããã«ãããã¯Gulpã ãã§å¯èœãšããããã§ã¯ãããŸããã JSé£çµããµããŒãããä»»æã®ã³ã¬ã¯ã¿ãŒã§ãã¹ãŠåãããšãç¹°ãè¿ããŸãã
æªæ¥ãèŠæ®ããïŒAngular 2.0ããã³ES6
JavaScriptã®æ¬¡ã®ããŒãžã§ã³ã¯ããã€ãã£ãã¬ãã«ã§ã¢ãžã¥ãŒã«ã®åé¡ã解決ããããšãæåŸ
ãããŠããŸãã ãããŠãES6ãåºããµããŒããããããã«ãªããšããã¡ãããã®èšäºã¯å€é¢šãªãã®ã«ãªããŸãããããã§ããªãããã°ããã圹ã«ç«ãŠã°å¹žãã§ãã
Angular 2.0ã¯ES6ã¢ãžã¥ãŒã«ããµããŒãããäºå®ã§ãããããã¯çŽ æŽãããããšã§ãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªæ©èœãç°¡åã«ã³ã³ãã€ã«ã§ããäžé£ã®ããã±ãŒãžã®ãããªãã®ã«ãªããšæããŸãã ãã ããæ®å¿µãªããããŒãžã§ã³2.0ããªãªãŒã¹ã«ã¯ã»ã©é ãç¶æ
ã§ãã
Angular 2.0ã¯ãã¢ãžã¥ãŒã«ãæ
åœããå¥åã®di.jsã©ã€ãã©ãªã䜿çšããŸãã Angularã®ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã§ç°¡åã«äœ¿çšã§ããŸãã å¯äžã®åé¡ã¯ãES6ããã³A2.0ã®ãªãªãŒã¹åã«ãçŸåšã®ã¢ãžã¥ãŒã«ã®å®è£
ã«å¯ŸåŠããå¿
èŠãããããšã§ããããã«ãããç§ã®èšäºãã圹ã«ç«ãŠã°å¹žãã§ãã