【node.js】サーバサイドjavascript 5【Nashorn】 (796レス)
上下前次1-新
658: 2021/11/17(水)17:46 ID:+3kxan1m(1) AAS
古き良きLAMP環境に拘る理由がないなら好きにしたら良い
659: 2021/11/17(水)23:30 ID:YG2/9hEL(1) AAS
>>656
昔ながらのFTPとかでファイル置くしかできないようなサービスならまずそんなもの導入されてないだろうな
660(4): 2021/11/25(木)05:21 ID:HW7nta/v(1/3) AAS
gulp4でejsをを使用したい + 別のタスクと記述方法を統一したいのですが
どうしてもエラーが解消できないのでどなたかご教授頂けませんか?(exportsにオブジェクトを突っ込む方法)
古い記述方法では動作しますが、新しい記述方法ではどうしても動作しません。
色々ググったのですが、どのサイト(英語サイトも含め)も古い記述方法で書かれており困っています。
公式も古い書き方に記述されています。(ejsだけ新しい書き方に対応していない?)
https://www.npmjs.com/package/gulp-ejs
//old
gulp.task('ejs', function() {
//
}
新しい記述方法では、どうしても下記のエラーが解消できません。
- The following tasks did not complete
- Did you forget to signal async completion?
また`ps aux`で別のプロセスも走っていないことを確認しており、別のgulpタスクも全てオフにした状態で
デバッグしております。
関数の引数にdoneを入れてdone()で締めたり、return除いてみたり試行錯誤していますが、数時間ハマっています。
どなたら分かる方いらっしゃたらご教授お願い致します。
//new
function ejs() {
return gulp
.src(srcPath.ejs)
.pipe(ejs());
}
exports.ejs = ejs;
661: 2021/11/25(木)06:59 ID:nh0ZEMSE(1/2) AAS
このエラーメッセージで検索すれば?
それか、意味を考えてみれば?
The following tasks did not complete
Did you forget to signal async completion?
もっと単純な例で、動くかどうか試してみれば?
662: 2021/11/25(木)07:24 ID:QOEXsJ22(1/10) AAS
>>660
状況全く分からんが、JSのパーサーはややおかしい?所があって、returnの後はぶった切られる。
よって、 return gulp.src(srcPath.ejs).pipe(ejs()); と改行を無くして試す事を勧める。
663(1): 2021/11/25(木)07:46 ID:88pS2ZzI(1) AAS
>>660
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Lexical_grammar#automatic_semicolon_insertion
664: 2021/11/25(木)08:25 ID:QOEXsJ22(2/10) AAS
>>663
これ return と yield (と後置演算子もか?)はパーサの仕様バグだよな?
直感的じゃ無いという意味で。
665(1): 2021/11/25(木)08:37 ID:acYGqwrp(1) AAS
仕様だよ
お前の直感がおかしい
666(1): 2021/11/25(木)08:57 ID:QOEXsJ22(3/10) AAS
>>660
いや実際660はそうしてるだろ。俺も以前嵌った事があったし、
実際セミコロン必須の言語だとどこで切ってもいいから、660の書き方はよく見るよ。
俺はお前がおかしいと思うが。
結局これもMDNで説明するのに例外扱い("no LineTerminator here" 規則)になってるし。
統一された文法ではないよね。(=もっとましな仕様にする事も出来たし、実際他言語はそう)
667: 2021/11/25(木)08:57 ID:QOEXsJ22(4/10) AAS
すまん分かると思うが 666 は >>665 宛
668(1): 2021/11/25(木)09:45 ID:6PNOZvLH(1/3) AAS
>>666
その書き方よくみるというけど
1行で書けば見やすいのにわざわざ複数行で見にくくしている意図がわからない
669(1): 2021/11/25(木)10:02 ID:QOEXsJ22(5/10) AAS
>>668
そりゃ、そうした方が見やすいと思う人がそうするだけだよ。
お前がそう思わなければしなければいいだけ。
ただ実際、660にある公式のコードもそうなってるだろ。
俺も個人的には横に長いコードを書くけど、一般的には縦に長いコードの方が多いと思うよ。
670(1): 2021/11/25(木)10:13 ID:rnpiht7q(1/2) AAS
returnの直後に改行してないからASI関係なくないか?
671(1): 2021/11/25(木)10:19 ID:QOEXsJ22(6/10) AAS
>>670
660の「新しい記述方法だと動かない」とされてるコードは return gulp で改行してる。
660内の公式はこれが出来ない事を知ってるから、 gulp.src(...) で改行してる。(ただしreturnはないが)
672(1): 2021/11/25(木)10:26 ID:6PNOZvLH(2/3) AAS
>>669
それは長い行を分けて改行しているだけ
一方で>>660の人は長い行にならないのに無意味に改行しまくり
673(3): 2021/11/25(木)10:28 ID:rnpiht7q(2/2) AAS
>>671
return
gulp.src()
ならreturnの後にセミコロンが自動挿入されるけど
return gulp
.src()
ならgulpの後にセミコロンは自動挿入されないでしょ
それよりfunction ejs(){}って名前がダメなんじゃないの?
.pipe(ejs())で再帰になってる
674(1): 2021/11/25(木)10:36 ID:QOEXsJ22(7/10) AAS
>>672
長さではなく、意味で切るんだよ。
>>673
> return gulp
> .src()
> ならgulpの後にセミコロンは自動挿入されないでしょ
されて gulp が返されるはずだぞ。
675(1): 2021/11/25(木)10:42 ID:6PNOZvLH(3/3) AAS
>>674
意味で切るならgulpと.src()の間で改行を入れてるのは明らかにおかしい
無意味な改行だ
676: 2021/11/25(木)10:42 ID:QOEXsJ22(8/10) AAS
>>673
すまん、674は間違い。
試してみたところ、確かに挿入されないようだ。
677: 2021/11/25(木)11:42 ID:QOEXsJ22(9/10) AAS
>>675
相手するだけ無駄っぽいが、そういうのは物によるんだよ。
そうした方が見やすいと思う奴がそうするだけ。
return ウンコ製造器675号
.src(ケーキ)
.pipe(胃)
.pipe(小腸);
.pipe(大腸);
なら、675によってケーキがウンコに変わるのが見やすくなると思う奴もいるだろ。
(詳しくないが)gulpの場合は基本はフィルタで型が変わらないし、出発点はソースファイルに決まってるから、
return gulp.src(ソース)
.pipe(フィルタ1)
.pipe(フィルタ2)
のケースが多いとは思うけど。
ついでに言っておくと、お前JSによくいる、やたら文法に拘る奴なら、止めた方がいい。
それだと全く進歩しないので。
上記の通り、まあどちらもいるわな、程度で進めていかないと、上達しない。
どちらが正しいとか、そういう問題ではない。
どうにもJS初心者は「改行を極める」「セミコロンを極める」とかになりがちのようで、よろしくない。
上下前次1-新書関写板覧索設栞歴
あと 119 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s