>>556
結論的には、
$ npm install -g fs-extra
$ set NODE_PATH=%AppData%\npm\node_modules
としてから、
node xxxx.js
とすると直りました。
探検
【node.js】サーバサイドjavascript 5【Nashorn】
557デフォルトの名無しさん
2020/10/17(土) 18:39:14.64ID:cX3MrjsP558デフォルトの名無しさん
2020/10/17(土) 23:48:03.55ID:5XNVi7jP Windows?
559デフォルトの名無しさん
2020/10/19(月) 16:19:09.43ID:faSV5MEm # Fatal error in , line 0
とか見慣れぬエラーで落ちててビビって調べたらv14のバグか
とか見慣れぬエラーで落ちててビビって調べたらv14のバグか
560デフォルトの名無しさん
2020/10/25(日) 03:29:13.70ID:xG/xcmJA import って mjsにしないといけないし
561デフォルトの名無しさん
2020/10/25(日) 03:30:20.11ID:xG/xcmJA 途中送信すまん
562デフォルトの名無しさん
2020/10/25(日) 04:23:13.46ID:Xs0QdE0/ mjsにしないといけないから何なんだよ気になるだろ…
因みにpackage.json弄れば.jsをESM扱いにはできる
因みにpackage.json弄れば.jsをESM扱いにはできる
563デフォルトの名無しさん
2020/10/25(日) 13:32:05.91ID:xG/xcmJA node v15にしたからmjsにして requireを全部importに変更したらpuppeteerがimportできなくてまたrequireに戻した
564デフォルトの名無しさん
2020/10/26(月) 06:48:46.11ID:AP4vuhmG 下記のモジュールを使用してHTMLソースからタグを全て取り除く処理を作っているのですが、タグを取り除いてくれません。
ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、
nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか?
◆モジュール
https://github.com/ericnorris/striptags
◆ソース
main.js
-----
var striptags = require('striptags');
striptags(html);
console.log(html); // 取り除かれていない
◆コンソールで書きコマンドを実行
node main.js
ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、
nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか?
◆モジュール
https://github.com/ericnorris/striptags
◆ソース
main.js
-----
var striptags = require('striptags');
striptags(html);
console.log(html); // 取り除かれていない
◆コンソールで書きコマンドを実行
node main.js
565デフォルトの名無しさん
2020/10/26(月) 13:39:27.76ID:jWz3MMEX html = striptags(html);
じゃないの?
じゃないの?
566デフォルトの名無しさん
2020/10/26(月) 14:12:32.65ID:AP4vuhmG >>565
教えて頂いた方法で取り除かれていることが確認できました。
公開されているソースを確認したら戻り値を受け取るようになっていました。
今後はソースも確認するようにします。
ありがとうございました。
教えて頂いた方法で取り除かれていることが確認できました。
公開されているソースを確認したら戻り値を受け取るようになっていました。
今後はソースも確認するようにします。
ありがとうございました。
567デフォルトの名無しさん
2020/10/26(月) 14:44:15.69ID:/aZJ5myY その前にJavaScriptの勉強をちゃんとすべきでは。。。
JSの文字列は不変って知ってればstriptagsの使い方を知らなくても>>564の書き方じゃダメってわかったはず
JSの文字列は不変って知ってればstriptagsの使い方を知らなくても>>564の書き方じゃダメってわかったはず
568デフォルトの名無しさん
2020/10/28(水) 03:46:46.75ID:Xggm0kAQ Fetchより先にAbortControllerが来るのタイムパラドックス感がある
569デフォルトの名無しさん
2020/10/28(水) 14:31:46.46ID:jeoOjGPI node.jsがあればPHPはもういらないよね?
570デフォルトの名無しさん
2020/10/28(水) 14:45:56.45ID:Nt7id6vD そんなことはない
571デフォルトの名無しさん
2020/10/28(水) 23:57:51.70ID:jeoOjGPI >>570
なぜ?
なぜ?
572デフォルトの名無しさん
2020/10/29(木) 00:23:44.55ID:6kIeo5xU rdb扱うのはphpの方が得意やろ
573デフォルトの名無しさん
2020/10/29(木) 00:35:34.69ID:Phiv6uZl >>563
v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ
v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ
574デフォルトの名無しさん
2020/10/29(木) 10:07:34.55ID:D91L/a15 俺も文法的にはPHPよりもjavascriptの方が好みなので、できれば移行したいんだけど、
URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。
なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、
でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、
と思うと移行できない。
こんな俺にもおすすめなnode.jsの使い方ってある?
URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。
なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、
でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、
と思うと移行できない。
こんな俺にもおすすめなnode.jsの使い方ってある?
575デフォルトの名無しさん
2020/10/29(木) 10:28:14.20ID:89EHBpBz レンタルサーバーだといまだにPHPだかんね
576デフォルトの名無しさん
2020/10/29(木) 11:43:25.35ID:6uKcySyb >>573
ありがとうございます。 -gでインストールしてたのがいけないっぽいです
ありがとうございます。 -gでインストールしてたのがいけないっぽいです
577デフォルトの名無しさん
2020/10/29(木) 16:31:46.11ID:Phiv6uZl578デフォルトの名無しさん
2020/10/29(木) 21:26:42.11ID:/i1l21sm >>574
無料オンライン格ゲーを作る。
無料オンライン格ゲーを作る。
579デフォルトの名無しさん
2020/10/29(木) 23:24:45.00ID:D91L/a15580デフォルトの名無しさん
2020/11/07(土) 11:58:54.69ID:fULQIOig npm-run-all で複数のnpm scriptを連続で実行したいんだが、scriptのどれか一つでも
0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。
大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく
処理しきってしまいたい場合がある。
0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。
大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく
処理しきってしまいたい場合がある。
581デフォルトの名無しさん
2020/11/07(土) 12:35:45.81ID:1KfyiAX9582デフォルトの名無しさん
2020/11/07(土) 12:39:43.17ID:fULQIOig さんきう。オプション見落としてた。
583デフォルトの名無しさん
2020/11/14(土) 16:32:10.90ID:XA/NhCB9 574です。
$ express --ejs myapp
を実行して、routes/index.jsに
router.all('/:ejs',(req,res)=>res.render(req.params.ejs,{req:req}))
の1行を書き加えただけでかなりphpっぽく使えるね。
ejsファイルを置くだけで、nodeを再起動しなくていいし。
ejsファイルが存在しないときに404 Not Foundじゃなくてエラー画面が出るのが愛嬌だけど。
$ express --ejs myapp
を実行して、routes/index.jsに
router.all('/:ejs',(req,res)=>res.render(req.params.ejs,{req:req}))
の1行を書き加えただけでかなりphpっぽく使えるね。
ejsファイルを置くだけで、nodeを再起動しなくていいし。
ejsファイルが存在しないときに404 Not Foundじゃなくてエラー画面が出るのが愛嬌だけど。
584デフォルトの名無しさん
2020/11/18(水) 14:56:07.27ID:7Ekft4aV おめーら的にdenoってどうすか?
使ったことなさそうだけど
使ったことなさそうだけど
585デフォルトの名無しさん
2020/11/18(水) 19:28:04.93ID:Zh0DQZnV ほんのちょっとしか触ってないけど面倒くささが無い
npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた
時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う
npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた
時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う
586デフォルトの名無しさん
2020/11/18(水) 20:11:49.14ID:7Ekft4aV 期待したいよな
開発者はイケメンだし
開発者はイケメンだし
587デフォルトの名無しさん
2020/11/18(水) 21:25:12.52ID:v8HWKopj npmが使えないからエコシステムが育つまで様子見だな。
@types以前のTypeScriptみたいな。
@types以前のTypeScriptみたいな。
588デフォルトの名無しさん
2020/11/19(木) 01:51:43.98ID:/aqa7r+0 io.jsのように良い部分はNode.js側に取り込んでほしいね
最近は複雑さばかりが増しているし
最近は複雑さばかりが増しているし
589デフォルトの名無しさん
2020/11/21(土) 19:45:56.38ID:ANSb4B/j express 5.xを使ってみたいんだけど、4.17.1になってしまう。
どうすればいいの?
$ npm init --y
$ npm install express@>=5.0.0-alpha.8 --save
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN e5@1.0.0 No description
npm WARN e5@1.0.0 No repository field.
$ npm view express version
4.17.1
どうすればいいの?
$ npm init --y
$ npm install express@>=5.0.0-alpha.8 --save
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN e5@1.0.0 No description
npm WARN e5@1.0.0 No repository field.
$ npm view express version
4.17.1
590デフォルトの名無しさん
2020/11/21(土) 23:08:26.52ID:jQLdetle Ruby のBundler なら、プロジェクトルートに移動してから、
Gemfile にバージョン指定を書いて、
bundle install とコマンド入力するけど
Gemfile にバージョン指定を書いて、
bundle install とコマンド入力するけど
591デフォルトの名無しさん
2020/11/21(土) 23:54:59.89ID:lsz7D7Ic592デフォルトの名無しさん
2020/11/22(日) 00:38:30.85ID:gYBzGuNC expressは当時koaに移行するのかと思ってたけど結局どっちも開発続いてるのな
593デフォルトの名無しさん
2020/11/22(日) 00:44:07.65ID:A21DE4YF koaもhapiもfastifyもexpressの牙城は崩せそうもない
594デフォルトの名無しさん
2020/11/22(日) 00:46:23.77ID:7U8BOc5J >>591
ありがとう。やってみたけどダメだった。
途中の表示にはexpress@5.0.0-alpha.8って出てるのに…
なんか晒すべき設定ってある?
$ npm init --y
$ npm i express@next
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN e5@1.0.0 No description
npm WARN e5@1.0.0 No repository field.
+ express@5.0.0-alpha.8
added 57 packages from 39 contributors and audited 57 packages in 4.105s
found 0 vulnerabilities
$ npm view express version
4.17.1
ありがとう。やってみたけどダメだった。
途中の表示にはexpress@5.0.0-alpha.8って出てるのに…
なんか晒すべき設定ってある?
$ npm init --y
$ npm i express@next
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN e5@1.0.0 No description
npm WARN e5@1.0.0 No repository field.
+ express@5.0.0-alpha.8
added 57 packages from 39 contributors and audited 57 packages in 4.105s
found 0 vulnerabilities
$ npm view express version
4.17.1
595デフォルトの名無しさん
2020/11/22(日) 01:12:26.72ID:uIWU98XF viewコマンドはインストールされたものじゃなくて公開されてるパッケージの情報見るものよ
596デフォルトの名無しさん
2020/11/22(日) 01:15:05.72ID:nMBoVd/n597デフォルトの名無しさん
2020/11/22(日) 01:19:23.91ID:ujQ9d+0r >>594
インストールの時は
$ npm i express@next
って打ってるくせに
なんで
$ npm view express version
って打つわけ?
それなら
$ npm view express@next version
でしょうが…
インストールの時は
$ npm i express@next
って打ってるくせに
なんで
$ npm view express version
って打つわけ?
それなら
$ npm view express@next version
でしょうが…
598デフォルトの名無しさん
2020/11/22(日) 09:31:06.57ID:7U8BOc5J >>595-597
ありがとう。バージョン確認方法の方が間違ってたのか。
あぶねえ。パッケージ側の情報で確認してたら、何を試しても永遠に出来ないって言ってるところだったw
改めて確認したら、ちゃんと5.xが入ってた。
お騒がせしました。
$ npm ls express | grep express
└── express@5.0.0-alpha.8
ありがとう。バージョン確認方法の方が間違ってたのか。
あぶねえ。パッケージ側の情報で確認してたら、何を試しても永遠に出来ないって言ってるところだったw
改めて確認したら、ちゃんと5.xが入ってた。
お騒がせしました。
$ npm ls express | grep express
└── express@5.0.0-alpha.8
599デフォルトの名無しさん
2020/11/23(月) 12:57:39.74ID:3jYl7MgH node.jsのドキュメントや書籍等で、セキュリティー対策を考慮して書かれているものがあれば教えてください
600uy ◆e6.oHu1j.o
2020/11/24(火) 12:43:32.88ID:gfNKbZsO601デフォルトの名無しさん
2021/01/01(金) 19:21:03.31ID:/+4IUuLb さくらVPSとかのlinuxサーバにwebアプリをデプロイするベターな手順ってなんかありますか
単純に考えれば、既存のサーバ中のプロジェクトフォルダを消して gitから新しくpullしてnpm ciすればいいはずなんだが
・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
・ローカルの設定、ログフォルダといった、消したくないフォルダがある
からちょっと面倒でなんとかしたい
nodejs deployment tool とかで検索しても、すぐ自社のSaasに誘導しようとして
素のEC2的なlinuxマシンでの方法が分からなかった。
単純に考えれば、既存のサーバ中のプロジェクトフォルダを消して gitから新しくpullしてnpm ciすればいいはずなんだが
・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
・ローカルの設定、ログフォルダといった、消したくないフォルダがある
からちょっと面倒でなんとかしたい
nodejs deployment tool とかで検索しても、すぐ自社のSaasに誘導しようとして
素のEC2的なlinuxマシンでの方法が分からなかった。
602デフォルトの名無しさん
2021/01/02(土) 03:22:23.36ID:HtnkmSa8 普通にDockerでnpm i後のイメージ作ればいいんじゃない
603デフォルトの名無しさん
2021/01/02(土) 04:25:18.76ID:VICQRi/P >>602
ありがとうございます。やはりdockerか。
docker使えない自分はこんな感じでやっていました。
>・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
git fetchした後git diff HEAD..origin/master -- package.json で変更があるか確認出来る。
変更があった場合のみnpm installすればいい。
>・ローカルの設定、ログフォルダといった、消したくないフォルダがある
ログフォルダや設定ファイルは.gitignoreしてあるはずだから、気にせず毎回git merge origin/master しても全く問題ないはず。
深く考えすぎてて、普通に手を動かしたら違和感なくデプロイ出来ました。
ありがとうございます。やはりdockerか。
docker使えない自分はこんな感じでやっていました。
>・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
git fetchした後git diff HEAD..origin/master -- package.json で変更があるか確認出来る。
変更があった場合のみnpm installすればいい。
>・ローカルの設定、ログフォルダといった、消したくないフォルダがある
ログフォルダや設定ファイルは.gitignoreしてあるはずだから、気にせず毎回git merge origin/master しても全く問題ないはず。
深く考えすぎてて、普通に手を動かしたら違和感なくデプロイ出来ました。
604デフォルトの名無しさん
2021/03/01(月) 09:14:19.43ID:vtDgs//2 for文について質問させてください。
const execTime = new Date(2021,0,1);
for (
const ix = new Date(execTime.getTime());
ix.getMonth() === execTime.getMonth();
ix.setDate(ix.getDate() + 1)
) {
console.log(ix);
}
これを実行すると、以下のようになります。
2020-12-31T15:00:00.000Z
...
2021-01-30T15:00:00.000Z
なぜ1月1日〜1月31日にならないのでしょうか?
どのように書けばいいのか教えてください。
node -v
v15.9.0
const execTime = new Date(2021,0,1);
for (
const ix = new Date(execTime.getTime());
ix.getMonth() === execTime.getMonth();
ix.setDate(ix.getDate() + 1)
) {
console.log(ix);
}
これを実行すると、以下のようになります。
2020-12-31T15:00:00.000Z
...
2021-01-30T15:00:00.000Z
なぜ1月1日〜1月31日にならないのでしょうか?
どのように書けばいいのか教えてください。
node -v
v15.9.0
605デフォルトの名無しさん
2021/03/01(月) 09:46:34.15ID:g7xhMPQT タイムゾーン
606デフォルトの名無しさん
2021/03/01(月) 11:40:37.52ID:vtDgs//2607デフォルトの名無しさん
2021/03/01(月) 17:11:01.18ID:Jj2WQfq1 npm outdateをCLIじゃなくてNode側から使う方法ってない?
stdoutからパースするのは流石に手間で
stdoutからパースするのは流石に手間で
608デフォルトの名無しさん
2021/03/01(月) 17:57:45.51ID:LQGHEOvf こいつを直接使えばいんじゃねーの知らんけど
https://github.com/npm/cli/blob/latest/lib/outdated.js
https://github.com/npm/cli/blob/latest/lib/outdated.js
609デフォルトの名無しさん
2021/03/01(月) 22:10:08.82ID:Jj2WQfq1 >>608
thx
試しにnode_modules/lib/outdated.jsがexportしてる関数を叩いてみたけど
内部のglobalディレクトリ参照でコケているようなエラーが出て機能しなかった
npm自体がModとしてのexportするのもAPIのないEventEmitterインスタンスだし想定してなさそうだ
諦めて自前で実装しているユーザーパッケージを適当に探すよ
thx
試しにnode_modules/lib/outdated.jsがexportしてる関数を叩いてみたけど
内部のglobalディレクトリ参照でコケているようなエラーが出て機能しなかった
npm自体がModとしてのexportするのもAPIのないEventEmitterインスタンスだし想定してなさそうだ
諦めて自前で実装しているユーザーパッケージを適当に探すよ
610デフォルトの名無しさん
2021/04/24(土) 07:20:56.16ID:CqGuC/ho JavaScript/TypeScriptランタイム環境「Deno 1.9」がリリース、パフォーマンス向上に寄与する機能追加など
https://codezine.jp/article/detail/13970
https://codezine.jp/article/detail/13970
611デフォルトの名無しさん
2021/07/14(水) 17:16:26.21ID:x3WS9adn 質問ってここで良いの?
Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの?
いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり
package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない
Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの?
いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり
package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない
612デフォルトの名無しさん
2021/07/16(金) 23:12:53.43ID:ku0oROTf dnsモジュールのgetServers()が初回実行時の内容キャッシュしてて使い物にならん
>>611
フロントエンドスレが一応立ってるからそっちで聞いてみれば
あとはWeb制作板に質問スレあったけど大分前に荒らしに乗っ取られて今はどうなってるやら
>>611
フロントエンドスレが一応立ってるからそっちで聞いてみれば
あとはWeb制作板に質問スレあったけど大分前に荒らしに乗っ取られて今はどうなってるやら
613デフォルトの名無しさん
2021/07/30(金) 15:13:55.95ID:COPEXZUK Ubuntu18.04でNode.js8.10.0を使ってるのですが、
BigIntのリテラル(例:10N)が使えません。
どうやったら使えるように出来るのでしょう?
BigIntのリテラル(例:10N)が使えません。
どうやったら使えるように出来るのでしょう?
614デフォルトの名無しさん
2021/07/30(金) 15:53:45.87ID:0CdNCLhG Node.jsをv12以上にする(細かいこと言うとv10の途中から使える)
615デフォルトの名無しさん
2021/07/30(金) 17:48:26.38ID:n/UloM9p 漏れは、Windows 10, WSL2, Ubuntu 18.04, VSCode だけど、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、Linux側から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv 公式サイト
https://github.com/anyenv/anyenv
anyenv + macOS環境構築
https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、Linux側から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv 公式サイト
https://github.com/anyenv/anyenv
anyenv + macOS環境構築
https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
616615
2021/07/30(金) 18:08:58.02ID:n/UloM9p anyenv などを使わず、
Docker で探した方が、もっと簡単かも
apt でインストールした、Node.js 8 は、アンインストールすれば良い
Docker で探した方が、もっと簡単かも
apt でインストールした、Node.js 8 は、アンインストールすれば良い
617デフォルトの名無しさん
2021/07/30(金) 18:19:19.46ID:7AkGA5GJ スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
618デフォルトの名無しさん
2021/07/30(金) 21:07:04.19ID:AXk+vMk4 今ならPuppeteerか同種のヘッドレスブラウザで実装するのが楽
通常の用途であればセキュリティを気にする部分はない
不正アクセスはまたの問題だから他の質問スレで聞こう
通常の用途であればセキュリティを気にする部分はない
不正アクセスはまたの問題だから他の質問スレで聞こう
619613
2021/07/31(土) 11:22:07.03ID:A0amfNLA 皆さんありがとうございました。
最新のLTS版Node.jsを入れたらBigIntなリテラル(N)が使える様になりました。
どのようにUbuntu18.04に最新版をインストールしたかと申しますと。
1. npmでnコマンドをインストール
2. nコマンドで最新LTS版Node.jsをインストール
3. aptでインストールしていたnodejsとnpmをアンインストール(依存も解消)
です。
最新のLTS版Node.jsを入れたらBigIntなリテラル(N)が使える様になりました。
どのようにUbuntu18.04に最新版をインストールしたかと申しますと。
1. npmでnコマンドをインストール
2. nコマンドで最新LTS版Node.jsをインストール
3. aptでインストールしていたnodejsとnpmをアンインストール(依存も解消)
です。
620615
2021/07/31(土) 11:37:20.92ID:tQlroryC NVM, n も、知ってるけど、
各言語ごとに、ツールの使用方法を覚えるのが大変
全言語で使用方法が統一されている、anyenv, asdf が良い。
最近はどの言語も、Docker が多い
各言語ごとに、ツールの使用方法を覚えるのが大変
全言語で使用方法が統一されている、anyenv, asdf が良い。
最近はどの言語も、Docker が多い
621613
2021/07/31(土) 12:37:39.44ID:A0amfNLA >>620
Node.jsでパッケージングされているプログラムだけで完結できるのに、
新しいNode.jsにする上で、
他のプログラムや仮想化に依存しなくてはいけない理由は何ですか?
仮想環境が便利だ等であれば別の話だと思うのですが。
私はC/C++、Java、Perl、JavaScript(フロント少々)使いで、
最近Node.jsに手を出し始めたのですが、
anyenvやasdfについては全く存じ上げませんでした。
それらを覚える事によって、
それらのラーニングコストを上回る恩恵を授かれるとは思いませんでした。
>>614さんのアドバイスから>>619まで行き着いた次第で、
シンプルに管理コストを抑えられるるのが一番だとも思っています。
Node.jsでパッケージングされているプログラムだけで完結できるのに、
新しいNode.jsにする上で、
他のプログラムや仮想化に依存しなくてはいけない理由は何ですか?
仮想環境が便利だ等であれば別の話だと思うのですが。
私はC/C++、Java、Perl、JavaScript(フロント少々)使いで、
最近Node.jsに手を出し始めたのですが、
anyenvやasdfについては全く存じ上げませんでした。
それらを覚える事によって、
それらのラーニングコストを上回る恩恵を授かれるとは思いませんでした。
>>614さんのアドバイスから>>619まで行き着いた次第で、
シンプルに管理コストを抑えられるるのが一番だとも思っています。
622デフォルトの名無しさん
2021/07/31(土) 16:07:39.01ID:nZmJDmGx 好きなもん使えばいい
俺もubuntuではaptでクソ古いNode入れてからnpmでn入れてnからlatest突っ込んでるよ
俺もubuntuではaptでクソ古いNode入れてからnpmでn入れてnからlatest突っ込んでるよ
623デフォルトの名無しさん
2021/07/31(土) 17:22:45.59ID:23Q0KlZH ruby 君の言うことを真に受けてはいけない
624デフォルトの名無しさん
2021/07/31(土) 19:12:03.00ID:8Bi9zOKj Ubuntu-ltsのデフォnodejsが10.xだもんなあ
オレの環境では動かない、とか言われても知らねえよ。NodeJS公式もサポートしないバージョンまでカバーできる訳ないだろうが
オレの環境では動かない、とか言われても知らねえよ。NodeJS公式もサポートしないバージョンまでカバーできる訳ないだろうが
625デフォルトの名無しさん
2021/08/04(水) 17:08:54.13ID:O4k/EVJC 「Electron」と「WebView2」はどう違う? 〜「Electron」の開発チームが解説
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1342249.html
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1342249.html
626デフォルトの名無しさん
2021/08/04(水) 19:09:25.30ID:qrQ4Lnon627デフォルトの名無しさん
2021/08/04(水) 19:20:49.91ID:L5LJfz6s 丸コピしたのとは違うと思うぞ
画像の方はアウト臭いな
画像の方はアウト臭いな
628デフォルトの名無しさん
2021/08/24(火) 08:49:56.10ID:YRe/N1mJ node.jsのconsole.logのpretty printをデフォルトでやめさせる方法ないのかな?
このおせっかい機能すごくいらいらするのは俺だけかな?
このおせっかい機能すごくいらいらするのは俺だけかな?
629デフォルトの名無しさん
2021/08/24(火) 10:42:50.46ID:5pgrc+RU process.stdout.write使え
console.logはブラウザに寄せようと頑張ってるんやろ
console.logはブラウザに寄せようと頑張ってるんやろ
630デフォルトの名無しさん
2021/08/24(火) 15:31:19.22ID:qPWgCxGJ puppeteerを使ってるプログラムをwebpackでバンドルすると、distにはChromiumが無いからエラーが出ちゃうわ
よく分からん
よく分からん
631デフォルトの名無しさん
2021/08/24(火) 18:06:53.00ID:Ya+eWSVV Webサイトのコンテキストで動かしてるならDevToolsとセッション張れないから意味ないぞ
https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#working-with-chrome-extensions
https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#working-with-chrome-extensions
632デフォルトの名無しさん
2021/08/28(土) 10:29:55.37ID:rJz23Izt nodeで作ってるapiがメモリ使用量1GBくらいでかなりベビーなんですけど
ここら辺のパフォーマンスチューニングについての知見がまとまってるサイトか書籍ないですかね?
ここら辺のパフォーマンスチューニングについての知見がまとまってるサイトか書籍ないですかね?
633デフォルトの名無しさん
2021/08/28(土) 14:06:05.96ID:TLYe8gOd634デフォルトの名無しさん
2021/09/01(水) 09:26:26.45ID:J/+xOU5Y >>633
あざます!
あざます!
635デフォルトの名無しさん
2021/09/06(月) 01:52:20.93ID:B6t4Zwws Fastifyいいな
636デフォルトの名無しさん
2021/09/15(水) 19:03:06.18ID:fHmj5hYp スクレイピングすると地獄へ落ちるって本当ですか?
637デフォルトの名無しさん
2021/09/15(水) 20:01:32.00ID:DvcCOYYc puppeteerのplaygroundでforループすれば任意の回数地獄に落ちられるぞ
638デフォルトの名無しさん
2021/09/18(土) 03:38:26.28ID:YPBxfQEw スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
639デフォルトの名無しさん
2021/09/18(土) 04:59:36.02ID:ZvozewrD マルチポストすんな
640デフォルトの名無しさん
2021/09/18(土) 18:16:18.88ID:J85RgKD5 頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?
641デフォルトの名無しさん
2021/09/19(日) 01:37:30.15ID:k7BgVJB0 node初心者だけどnpmが脆弱性情報吐きまくってこわい
642デフォルトの名無しさん
2021/09/19(日) 13:46:28.11ID:k7BgVJB0 ググったらauditはクソ設計みたいな記事が出てきた
無視して良かったんだね
いままで膨大な時間を無駄にしてた…(´Д`)ハァ…
無視して良かったんだね
いままで膨大な時間を無駄にしてた…(´Д`)ハァ…
643デフォルトの名無しさん
2021/10/10(日) 13:43:36.36ID:rC7NAnza なんか変な場所でエラー投げられてプロセスが止まると思ったら
依存Modの一つがPromiseコンストラクタのcallback内で非同期エラー投げて止まっていた
そりゃrejectしないしcatchブロックにも引っ掛からんわどうすりゃいいねん
依存Modの一つがPromiseコンストラクタのcallback内で非同期エラー投げて止まっていた
そりゃrejectしないしcatchブロックにも引っ掛からんわどうすりゃいいねん
644デフォルトの名無しさん
2021/10/10(日) 17:42:53.02ID:6Ldb4KuL そんな事は4,000年に一度しかないからヨシ!
645デフォルトの名無しさん
2021/10/10(日) 18:08:01.88ID:aEbL1282 >>643
その依存モジュールを捨てる
その依存モジュールを捨てる
646デフォルトの名無しさん
2021/10/10(日) 20:04:03.47ID:rC7NAnza 最悪プルリク投げるかと思ってリポジトリ見たら消えてた
捨てて自分で書くわ
捨てて自分で書くわ
647デフォルトの名無しさん
2021/10/10(日) 20:07:36.51ID:zb1mAGkH >>646
お疲れさん。ちな何て言うモジュール?
お疲れさん。ちな何て言うモジュール?
648デフォルトの名無しさん
2021/10/10(日) 20:11:13.74ID:rC7NAnza 具体名は避けるけどProxy関連
自前のDNSBL作るのに使ってる
自前のDNSBL作るのに使ってる
649デフォルトの名無しさん
2021/10/20(水) 02:52:30.75ID:7Ch1Hu5l スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか?
650デフォルトの名無しさん
2021/10/20(水) 07:42:40.20ID:442/7USe マルチ
651デフォルトの名無しさん
2021/10/21(木) 01:45:51.47ID:Z5+NocI4 17でStrcturedCloneの実装来るのか
もうv8にある似たようなAPI使わなくてよくなるのな
もうv8にある似たようなAPI使わなくてよくなるのな
652デフォルトの名無しさん
2021/10/25(月) 18:50:04.02ID:xfFAFxQ2 パッケージ管理ツールのnpmで公開されている「UAParser.js」は、ユーザーエージェントの判定処理を
実行するJavaScriptライブラリであり、Facebook・Microsoft・Amazon・Googleなどの超大手企業を
含む1000以上のプロジェクトで採用されています。
そんなUAParser.jsがハッカーによってハイジャックされ、LinuxおよびWindowsデバイスを対象に暗号
資産採掘やパスワードの盗難を行うトロイの木馬が仕込まれていたことが判明しました。
実行するJavaScriptライブラリであり、Facebook・Microsoft・Amazon・Googleなどの超大手企業を
含む1000以上のプロジェクトで採用されています。
そんなUAParser.jsがハッカーによってハイジャックされ、LinuxおよびWindowsデバイスを対象に暗号
資産採掘やパスワードの盗難を行うトロイの木馬が仕込まれていたことが判明しました。
653デフォルトの名無しさん
2021/10/25(月) 18:55:04.53ID:WgjrPOfi GIGAZINEからのコピペだろうけどちゃんと引用元URL貼っとけよ
654デフォルトの名無しさん
2021/11/17(水) 15:53:34.41ID:OJq8ALeu 上にもちょっとありましたが、レンタルサーバでnode.jsを動かすのって現実的じゃないもんなんですか?
655デフォルトの名無しさん
2021/11/17(水) 16:00:07.09ID:lSu1Xmea いや全然
上にある「レン鯖はPHP」ってレスは恐らく既に環境を構築済みで
あとは実行する.phpを配置するだけのWebスペースを想定したレス
上にある「レン鯖はPHP」ってレスは恐らく既に環境を構築済みで
あとは実行する.phpを配置するだけのWebスペースを想定したレス
656デフォルトの名無しさん
2021/11/17(水) 16:22:49.28ID:sYjDCVja node.js使えるレンサバってあるの?
657デフォルトの名無しさん
2021/11/17(水) 16:34:28.88ID:lSu1Xmea >>655に書いたような実質Webスペースの共有レン鯖でも端末触れる一部では使えるよ
占有型ではもちろん使えるけど今なら間違いなくVPSのほうがいい
占有型ではもちろん使えるけど今なら間違いなくVPSのほうがいい
658デフォルトの名無しさん
2021/11/17(水) 17:46:17.02ID:+3kxan1m 古き良きLAMP環境に拘る理由がないなら好きにしたら良い
659デフォルトの名無しさん
2021/11/17(水) 23:30:54.62ID:YG2/9hEL >>656
昔ながらのFTPとかでファイル置くしかできないようなサービスならまずそんなもの導入されてないだろうな
昔ながらのFTPとかでファイル置くしかできないようなサービスならまずそんなもの導入されてないだろうな
660デフォルトの名無しさん
2021/11/25(木) 05:21:15.21ID:HW7nta/v 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;
どうしてもエラーが解消できないのでどなたかご教授頂けませんか?(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:11.02ID:nh0ZEMSE このエラーメッセージで検索すれば?
それか、意味を考えてみれば?
The following tasks did not complete
Did you forget to signal async completion?
もっと単純な例で、動くかどうか試してみれば?
それか、意味を考えてみれば?
The following tasks did not complete
Did you forget to signal async completion?
もっと単純な例で、動くかどうか試してみれば?
662デフォルトの名無しさん
2021/11/25(木) 07:24:22.11ID:QOEXsJ22 >>660
状況全く分からんが、JSのパーサーはややおかしい?所があって、returnの後はぶった切られる。
よって、 return gulp.src(srcPath.ejs).pipe(ejs()); と改行を無くして試す事を勧める。
状況全く分からんが、JSのパーサーはややおかしい?所があって、returnの後はぶった切られる。
よって、 return gulp.src(srcPath.ejs).pipe(ejs()); と改行を無くして試す事を勧める。
663デフォルトの名無しさん
2021/11/25(木) 07:46:08.16ID:88pS2ZzI664デフォルトの名無しさん
2021/11/25(木) 08:25:42.47ID:QOEXsJ22665デフォルトの名無しさん
2021/11/25(木) 08:37:10.78ID:acYGqwrp 仕様だよ
お前の直感がおかしい
お前の直感がおかしい
666デフォルトの名無しさん
2021/11/25(木) 08:57:16.71ID:QOEXsJ22 >>660
いや実際660はそうしてるだろ。俺も以前嵌った事があったし、
実際セミコロン必須の言語だとどこで切ってもいいから、660の書き方はよく見るよ。
俺はお前がおかしいと思うが。
結局これもMDNで説明するのに例外扱い("no LineTerminator here" 規則)になってるし。
統一された文法ではないよね。(=もっとましな仕様にする事も出来たし、実際他言語はそう)
いや実際660はそうしてるだろ。俺も以前嵌った事があったし、
実際セミコロン必須の言語だとどこで切ってもいいから、660の書き方はよく見るよ。
俺はお前がおかしいと思うが。
結局これもMDNで説明するのに例外扱い("no LineTerminator here" 規則)になってるし。
統一された文法ではないよね。(=もっとましな仕様にする事も出来たし、実際他言語はそう)
667デフォルトの名無しさん
2021/11/25(木) 08:57:57.52ID:QOEXsJ22 すまん分かると思うが 666 は >>665 宛
668デフォルトの名無しさん
2021/11/25(木) 09:45:34.63ID:6PNOZvLH669デフォルトの名無しさん
2021/11/25(木) 10:02:02.58ID:QOEXsJ22 >>668
そりゃ、そうした方が見やすいと思う人がそうするだけだよ。
お前がそう思わなければしなければいいだけ。
ただ実際、660にある公式のコードもそうなってるだろ。
俺も個人的には横に長いコードを書くけど、一般的には縦に長いコードの方が多いと思うよ。
そりゃ、そうした方が見やすいと思う人がそうするだけだよ。
お前がそう思わなければしなければいいだけ。
ただ実際、660にある公式のコードもそうなってるだろ。
俺も個人的には横に長いコードを書くけど、一般的には縦に長いコードの方が多いと思うよ。
670デフォルトの名無しさん
2021/11/25(木) 10:13:11.42ID:rnpiht7q returnの直後に改行してないからASI関係なくないか?
671デフォルトの名無しさん
2021/11/25(木) 10:19:20.71ID:QOEXsJ22 >>670
660の「新しい記述方法だと動かない」とされてるコードは return gulp で改行してる。
660内の公式はこれが出来ない事を知ってるから、 gulp.src(...) で改行してる。(ただしreturnはないが)
660の「新しい記述方法だと動かない」とされてるコードは return gulp で改行してる。
660内の公式はこれが出来ない事を知ってるから、 gulp.src(...) で改行してる。(ただしreturnはないが)
672デフォルトの名無しさん
2021/11/25(木) 10:26:17.55ID:6PNOZvLH673デフォルトの名無しさん
2021/11/25(木) 10:28:27.93ID:rnpiht7q >>671
return
gulp.src()
ならreturnの後にセミコロンが自動挿入されるけど
return gulp
.src()
ならgulpの後にセミコロンは自動挿入されないでしょ
それよりfunction ejs(){}って名前がダメなんじゃないの?
.pipe(ejs())で再帰になってる
return
gulp.src()
ならreturnの後にセミコロンが自動挿入されるけど
return gulp
.src()
ならgulpの後にセミコロンは自動挿入されないでしょ
それよりfunction ejs(){}って名前がダメなんじゃないの?
.pipe(ejs())で再帰になってる
674デフォルトの名無しさん
2021/11/25(木) 10:36:21.11ID:QOEXsJ22675デフォルトの名無しさん
2021/11/25(木) 10:42:13.14ID:6PNOZvLH676デフォルトの名無しさん
2021/11/25(木) 10:42:35.39ID:QOEXsJ22677デフォルトの名無しさん
2021/11/25(木) 11:42:21.71ID:QOEXsJ22 >>675
相手するだけ無駄っぽいが、そういうのは物によるんだよ。
そうした方が見やすいと思う奴がそうするだけ。
return ウンコ製造器675号
.src(ケーキ)
.pipe(胃)
.pipe(小腸);
.pipe(大腸);
なら、675によってケーキがウンコに変わるのが見やすくなると思う奴もいるだろ。
(詳しくないが)gulpの場合は基本はフィルタで型が変わらないし、出発点はソースファイルに決まってるから、
return gulp.src(ソース)
.pipe(フィルタ1)
.pipe(フィルタ2)
のケースが多いとは思うけど。
ついでに言っておくと、お前JSによくいる、やたら文法に拘る奴なら、止めた方がいい。
それだと全く進歩しないので。
上記の通り、まあどちらもいるわな、程度で進めていかないと、上達しない。
どちらが正しいとか、そういう問題ではない。
どうにもJS初心者は「改行を極める」「セミコロンを極める」とかになりがちのようで、よろしくない。
相手するだけ無駄っぽいが、そういうのは物によるんだよ。
そうした方が見やすいと思う奴がそうするだけ。
return ウンコ製造器675号
.src(ケーキ)
.pipe(胃)
.pipe(小腸);
.pipe(大腸);
なら、675によってケーキがウンコに変わるのが見やすくなると思う奴もいるだろ。
(詳しくないが)gulpの場合は基本はフィルタで型が変わらないし、出発点はソースファイルに決まってるから、
return gulp.src(ソース)
.pipe(フィルタ1)
.pipe(フィルタ2)
のケースが多いとは思うけど。
ついでに言っておくと、お前JSによくいる、やたら文法に拘る奴なら、止めた方がいい。
それだと全く進歩しないので。
上記の通り、まあどちらもいるわな、程度で進めていかないと、上達しない。
どちらが正しいとか、そういう問題ではない。
どうにもJS初心者は「改行を極める」「セミコロンを極める」とかになりがちのようで、よろしくない。
678デフォルトの名無しさん
2021/11/25(木) 12:57:12.37ID:K4FLN1Dn んじゃ俺は括弧の後に半角スペースを入れるのを極めるわ。
679デフォルトの名無しさん
2021/11/25(木) 13:45:45.44ID:R4fLO2Lj 必死過ぎて笑えるw
680デフォルトの名無しさん
2021/11/25(木) 14:09:48.85ID:reZpBJt7 珍しく伸びてんなと思ったらこれだよ
681デフォルトの名無しさん
2021/11/25(木) 19:42:13.27ID:b7JhAcnH .NET Standard が世界の中心と考えてる人でしょ
別スレで見た
別スレで見た
682デフォルトの名無しさん
2021/11/25(木) 21:14:35.40ID:QOEXsJ22 >>678
ゆとりにはそれがお似合いだね
ゆとりにはそれがお似合いだね
683デフォルトの名無しさん
2021/11/25(木) 22:13:54.29ID:HW7nta/v 610です。
仕事でレス遅くなりました。
>>673
ありがとうございます!
このコメントからピンときて修正したら無事に動作しました。
超初歩的なミスでした、、
こちらの書き方は関数の中にejs(gulp-ejsオブジェクト)を書いても動作しましたが
gulp.task('ejs', function() {
}
こちらでは関数に同じ関数入れたらまだタスク終わってないよと、動作しませんよね。(気づけば当たり前なのですが、、)
function ejs() {
}
お騒がせしました。コメント頂いた方もありがとうございました!
仕事でレス遅くなりました。
>>673
ありがとうございます!
このコメントからピンときて修正したら無事に動作しました。
超初歩的なミスでした、、
こちらの書き方は関数の中にejs(gulp-ejsオブジェクト)を書いても動作しましたが
gulp.task('ejs', function() {
}
こちらでは関数に同じ関数入れたらまだタスク終わってないよと、動作しませんよね。(気づけば当たり前なのですが、、)
function ejs() {
}
お騒がせしました。コメント頂いた方もありがとうございました!
684デフォルトの名無しさん
2021/11/25(木) 22:25:35.12ID:HW7nta/v 誤 610です。 = > 正 660です。
685デフォルトの名無しさん
2021/11/25(木) 23:27:35.30ID:nh0ZEMSE 漏れは、Ruby でも、パーサーの誤解釈を避けるため、
. を行末に置く
a.
b( ).
c( )
. を行末に置く
a.
b( ).
c( )
686デフォルトの名無しさん
2021/11/26(金) 01:34:21.64ID:KdVwfKAT なんで Ruby が出てきた
687デフォルトの名無しさん
2021/11/26(金) 22:15:56.74ID:FIwAqG/H スクリプト系は改行も終端になって駄目ね
688デフォルトの名無しさん
2021/11/26(金) 23:57:17.12ID:MbvsChzk >>687
JavaScriptで駄目なのはreturnのみの行の時だけだよ
return
a
.b()
は駄目だけどこう書く人はいないから問題は起きることはない
return a
.b()
なら大丈夫
JavaScriptで駄目なのはreturnのみの行の時だけだよ
return
a
.b()
は駄目だけどこう書く人はいないから問題は起きることはない
return a
.b()
なら大丈夫
689デフォルトの名無しさん
2021/11/27(土) 09:09:57.67ID:kX7QbhiL そういうのはコーディング時にいちいち気にするよりlinterでチェックだな。
690デフォルトの名無しさん
2021/11/27(土) 09:24:44.31ID:LVgG7qhW >>688
それを知ってないと嵌るだけの無駄仕様だよ。
セミコロンなしの筆頭だったAirbnbも諦めたようだし。
> ASI contains a few eccentric behaviors, though, and your code will break if JavaScript misinterprets your line break. These rules will become more complicated as new features become a part of JavaScript. Explicitly terminating your statements and configuring your linter to catch missing semicolons will help prevent you from encountering issues.
> https://github.com/airbnb/javascript#semicolons
他にセミコロンなしの有名ルール勢ってあったっけ?
return
'qwerty'
+'asdfgh';
とは書きたくなるだろ。書きたいように書けないのはよろしくないよ。今風ではないね。
セミコロン書くルールならASIなんて無い方がマシだし。
それを知ってないと嵌るだけの無駄仕様だよ。
セミコロンなしの筆頭だったAirbnbも諦めたようだし。
> ASI contains a few eccentric behaviors, though, and your code will break if JavaScript misinterprets your line break. These rules will become more complicated as new features become a part of JavaScript. Explicitly terminating your statements and configuring your linter to catch missing semicolons will help prevent you from encountering issues.
> https://github.com/airbnb/javascript#semicolons
他にセミコロンなしの有名ルール勢ってあったっけ?
return
'qwerty'
+'asdfgh';
とは書きたくなるだろ。書きたいように書けないのはよろしくないよ。今風ではないね。
セミコロン書くルールならASIなんて無い方がマシだし。
691デフォルトの名無しさん
2021/11/27(土) 09:32:19.66ID:MtgsfYs/ 書き方にこだわりがあるならそうではない書き方と比べて◯◯の利点があると言わないと他人の理解は得られにくい。
好みだけの問題ならスクリプトの仕様に従うしかない。
好みだけの問題ならスクリプトの仕様に従うしかない。
692デフォルトの名無しさん
2021/11/27(土) 09:36:27.04ID:TUbuKQsw 自分はなりませんねとしか
693デフォルトの名無しさん
2021/11/27(土) 09:41:13.68ID:LVgG7qhW >>681
俺向けではないと思うが、
return
'qwerty'
+'asdfgh';
の利点は見れば分かるとおり、インデントを揃えられる事だよ。
タグの方が分かりやすいかもしれんが一々引っかかると面倒なので止めただけ。
return '<div>'
+'<span>'+
+'</span>'+
+'</div>';
だと最初のdivのインデントがずれるだろ。
まあ言うほどではないし、実際俺はこの書き方をしているが、出来れば return の後に改行したいね。
俺向けではないと思うが、
return
'qwerty'
+'asdfgh';
の利点は見れば分かるとおり、インデントを揃えられる事だよ。
タグの方が分かりやすいかもしれんが一々引っかかると面倒なので止めただけ。
return '<div>'
+'<span>'+
+'</span>'+
+'</div>';
だと最初のdivのインデントがずれるだろ。
まあ言うほどではないし、実際俺はこの書き方をしているが、出来れば return の後に改行したいね。
694デフォルトの名無しさん
2021/11/27(土) 09:42:13.87ID:LVgG7qhW すまん693内681は>>691
695デフォルトの名無しさん
2021/11/27(土) 10:25:26.66ID:wIEauZJC お前ら何も考えずにPrettier使え
それが今のデファクトだ
それが今のデファクトだ
696デフォルトの名無しさん
2021/11/27(土) 11:22:05.56ID:xgA8vuBV >>690
Airbnbがセミコロンなしの筆頭って頭腐りすぎたろ
git時代に歴史改ざんしてもすぐにバレる
2012年にセミコロンの章が初めて書かれたときからAirbnbはセミコロン派だ
https://github.com/airbnb/javascript/blob/cab510342f93791a7487d16258d06ff73edb4507/README.md#semicolons
Airbnbがセミコロンなしの筆頭って頭腐りすぎたろ
git時代に歴史改ざんしてもすぐにバレる
2012年にセミコロンの章が初めて書かれたときからAirbnbはセミコロン派だ
https://github.com/airbnb/javascript/blob/cab510342f93791a7487d16258d06ff73edb4507/README.md#semicolons
697デフォルトの名無しさん
2021/11/27(土) 11:35:18.29ID:LVgG7qhW >>696
ならAirbnbというのは俺の勘違いだな。
俺がJSを始めた2013-14頃、有名なコーディングルールが4つほどあって、Airbnbが一番トンデモだった(が、人気は一番という話だった)
その中にはセミコロンを打つな、というルールもあった。誰か思えてないかね?
なお俺はgoogleのルールが一番マシっぽいのでそれを参考にした。(こちらはセミコロンあり)
ならAirbnbというのは俺の勘違いだな。
俺がJSを始めた2013-14頃、有名なコーディングルールが4つほどあって、Airbnbが一番トンデモだった(が、人気は一番という話だった)
その中にはセミコロンを打つな、というルールもあった。誰か思えてないかね?
なお俺はgoogleのルールが一番マシっぽいのでそれを参考にした。(こちらはセミコロンあり)
698デフォルトの名無しさん
2021/11/27(土) 11:43:32.92ID:WAiK9igD >>697
どこだか覚えてないけど、確かにどっかでセミコロン打たないで、短文を1行に書くときだけセミコロン使うてなの見たか聞いたりした記憶ある。
どこだか覚えてないけど、確かにどっかでセミコロン打たないで、短文を1行に書くときだけセミコロン使うてなの見たか聞いたりした記憶ある。
699デフォルトの名無しさん
2021/11/27(土) 12:14:33.21ID:LVgG7qhW 一応自分でも再確認しているところだが、
> Always use semicolons. (google)
> Use them. Never rely on ASI. (jQuery)
> あなたからセミコロンを奪おうとする反抗的な軍隊があるようです。でも確かに私達の伝統的な文化はまだ元気に生き残っています。だからコミュニティに従って、セミコロンを使いなさい!(Node)
> https://qiita.com/takeharu/items/dee0972e5f39bfd4d7c8
npmのもかなりトンデモだった記憶があり、改めて確認すると、打つな派だ。
> ;(x || y).performAction()
> ;[a, b, c].forEach(performAction)
> for (var i = 0; i < 10; i ++) {
> switch (state) {
> case 'begin': start(); continue
> case 'end': finish(); break
> default: throw new Error('unknown state')
> }
> end()
> }
> https://www.w3resource.com/npm/npm-coding-style.php
となると俺の勘違いはnpmという事になるが、npm==Nodeじゃねえのか?という疑問は発生する。Nodeはnpmからのフォークか?
多分俺が当時見たのは Airbnb, npm, jQuery, googleだと思う。
> Always use semicolons. (google)
> Use them. Never rely on ASI. (jQuery)
> あなたからセミコロンを奪おうとする反抗的な軍隊があるようです。でも確かに私達の伝統的な文化はまだ元気に生き残っています。だからコミュニティに従って、セミコロンを使いなさい!(Node)
> https://qiita.com/takeharu/items/dee0972e5f39bfd4d7c8
npmのもかなりトンデモだった記憶があり、改めて確認すると、打つな派だ。
> ;(x || y).performAction()
> ;[a, b, c].forEach(performAction)
> for (var i = 0; i < 10; i ++) {
> switch (state) {
> case 'begin': start(); continue
> case 'end': finish(); break
> default: throw new Error('unknown state')
> }
> end()
> }
> https://www.w3resource.com/npm/npm-coding-style.php
となると俺の勘違いはnpmという事になるが、npm==Nodeじゃねえのか?という疑問は発生する。Nodeはnpmからのフォークか?
多分俺が当時見たのは Airbnb, npm, jQuery, googleだと思う。
700デフォルトの名無しさん
2021/11/27(土) 12:30:57.21ID:i1Pzoh/C NodeはRyan Dahlが始めてセミコロンあり
npmはIsaac Z. Schlueterが始めてセミコロンなし
IsaacはNodeの2代目リーダーだけどNodeではセミコロンを書いてた
npmはIsaac Z. Schlueterが始めてセミコロンなし
IsaacはNodeの2代目リーダーだけどNodeではセミコロンを書いてた
701デフォルトの名無しさん
2021/11/27(土) 12:54:15.05ID:XFyMXPdv702デフォルトの名無しさん
2021/11/27(土) 13:40:28.79ID:LVgG7qhW >>701
初コミット2015年なのにstandardと主張して他と違うルールとか、頭おかしいな。
とはいえ議論する時間が一番無駄というのは同意だが。
多分セミコロン無し言語出身者用のルールが一つは必要で、
それに向けてのstandard命名なのだろうけど、なんだかね。
初コミット2015年なのにstandardと主張して他と違うルールとか、頭おかしいな。
とはいえ議論する時間が一番無駄というのは同意だが。
多分セミコロン無し言語出身者用のルールが一つは必要で、
それに向けてのstandard命名なのだろうけど、なんだかね。
703デフォルトの名無しさん
2021/11/27(土) 13:49:34.28ID:MtgsfYs/ 文字列を「+」で繋げるのもうやめようよ。見にくいよ。
「´」(バッククォート)で括ればいいじゃん
「´」(バッククォート)で括ればいいじゃん
704デフォルトの名無しさん
2021/11/27(土) 13:51:01.70ID:NSUO7OXD705デフォルトの名無しさん
2021/11/28(日) 09:28:43.85ID:yQx61O6E javascriptならセミコロン無い方がいいかなぁ
706デフォルトの名無しさん
2021/12/14(火) 18:36:52.92ID:R85W1UAs async/awaitってawaitしかしないから無駄じゃね?
707デフォルトの名無しさん
2021/12/26(日) 08:00:15.12ID:iIGCgNg3 Promise, async/await で無駄なのは、デタラメ解説の数々、ほぼ全滅だろ、酷い惨状だねー。
708デフォルトの名無しさん
2021/12/26(日) 09:04:50.48ID:S+a9i6vw それを言ったらWeb系言語は全部デタラメ解説で駄目だろ
初心者が情報公開の練習として解説を書くからそうなる
初心者が情報公開の練習として解説を書くからそうなる
709デフォルトの名無しさん
2021/12/26(日) 10:12:00.53ID:6ScHvZpk それはしゃーない、正確さにこだわりすぎて萎縮する方がデメリットが大きい
読む方が気を付けて取捨選択するしかない
読む方が気を付けて取捨選択するしかない
710デフォルトの名無しさん
2021/12/26(日) 10:19:35.71ID:jog3O69G c++とかjavaとか含めて進化してる技術の古い解説はことごとくゴミ化してるし一緒だわな
711デフォルトの名無しさん
2021/12/26(日) 11:04:07.34ID:4h95DB/2 classは非推奨にして欲しい。
中途半端で使いにくい。
中途半端で使いにくい。
712デフォルトの名無しさん
2021/12/26(日) 13:04:22.56ID:PmcDL+gd >>711
どういう所?
どういう所?
713デフォルトの名無しさん
2021/12/26(日) 13:40:10.35ID:S+a9i6vw714デフォルトの名無しさん
2021/12/26(日) 17:59:34.28ID:4h95DB/2715デフォルトの名無しさん
2021/12/26(日) 18:08:44.18ID:PnBrsUGe 上っ面といってもそこで整合とれていて内部の問題が表に現れないなら別に問題ないと思うが。
まぁ、中途半端というなら何かそういう部分が見えているということなんだろうが。
まぁ、中途半端というなら何かそういう部分が見えているということなんだろうが。
716デフォルトの名無しさん
2021/12/26(日) 18:30:25.89ID:oeLmweY9 定期的に呟いてる人だから気にせんでいいよ
717デフォルトの名無しさん
2021/12/26(日) 18:50:24.76ID:PmcDL+gd718デフォルトの名無しさん
2021/12/26(日) 18:55:49.66ID:S+a9i6vw プロトタイプの方が表現出来る空間が広くて、実際にただの糖衣構文でクラスを実装出来てるだけだろ
クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが
混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか)
class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか?
クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが
混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか)
class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか?
719デフォルトの名無しさん
2021/12/26(日) 19:35:46.48ID:kUhTwtcg GoやRustなんかの新しい言語がクラスベースのオブジェクト指向を採用しないご時世
時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな
TC39的にはES4で入れ損なったから悲願だったんだろうけど
時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな
TC39的にはES4で入れ損なったから悲願だったんだろうけど
720デフォルトの名無しさん
2021/12/26(日) 20:25:20.58ID:M+F+5/6j プロトタイプベースのオブジェクト指向ってIDEや静的型付けと相性悪いのでは
721デフォルトの名無しさん
2021/12/26(日) 20:48:01.50ID:S+a9i6vw722デフォルトの名無しさん
2021/12/26(日) 20:54:53.04ID:M+F+5/6j723デフォルトの名無しさん
2021/12/26(日) 21:02:39.16ID:4h95DB/2724デフォルトの名無しさん
2021/12/26(日) 21:18:20.64ID:S+a9i6vw725デフォルトの名無しさん
2021/12/26(日) 21:26:19.15ID:PIvfFszt726デフォルトの名無しさん
2021/12/26(日) 21:33:51.63ID:PIvfFszt >>725
自己レス「ES2020の14.6.13」の書き間違い
自己レス「ES2020の14.6.13」の書き間違い
727デフォルトの名無しさん
2021/12/26(日) 22:43:28.35ID:M+F+5/6j >>724
そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ
例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う
構文解析なんかは大して難しい話ではない
そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ
例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う
構文解析なんかは大して難しい話ではない
728デフォルトの名無しさん
2021/12/26(日) 22:59:58.91ID:vgGpFQt6 実際にTypeScriptはinterface導入してるし何も問題ないだろ
729デフォルトの名無しさん
2021/12/26(日) 23:27:54.98ID:S+a9i6vw >>727
最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、
IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。
プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。
IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。
IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、
一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。
GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。
静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。
実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。
最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。
ちなみにTSが型を導入したのも、IDEを作るためではなく、
プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。
そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。
型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。
最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、
IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。
プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。
IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。
IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、
一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。
GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。
静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。
実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。
最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。
ちなみにTSが型を導入したのも、IDEを作るためではなく、
プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。
そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。
型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。
730デフォルトの名無しさん
2021/12/27(月) 00:11:53.01ID:Btn3kp2t >>729
言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても
静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが
実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが >>720 ではIDEや静的解析といっている
言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても
静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが
実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが >>720 ではIDEや静的解析といっている
731デフォルトの名無しさん
2021/12/27(月) 05:27:18.08ID:5b2Vj92V >>730
> 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。
それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。
IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。
よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。
上下関係で言えばプログラミング言語の『仕様』が完全に上であって、
IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
> 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。
でも確かにこれが一番生産性が高いんだよ。
当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。
だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。
最大のメリットは構文解釈を自前で実装する必要がない事。
構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、
IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。
これで言語側の仕様変更に自動的に追従するようになる。
IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。
> 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。
しかも自前の実装もなしだから、最も生産性が高い。
自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、
それはIDEではなくリンターと呼ぶべきだが、
それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、
IDEはそのエラーを表示する事に徹するのが最も生産性が高い。
IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。
> 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。
それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。
IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。
よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。
上下関係で言えばプログラミング言語の『仕様』が完全に上であって、
IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
> 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。
でも確かにこれが一番生産性が高いんだよ。
当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。
だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。
最大のメリットは構文解釈を自前で実装する必要がない事。
構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、
IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。
これで言語側の仕様変更に自動的に追従するようになる。
IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。
> 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。
しかも自前の実装もなしだから、最も生産性が高い。
自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、
それはIDEではなくリンターと呼ぶべきだが、
それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、
IDEはそのエラーを表示する事に徹するのが最も生産性が高い。
IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。
732デフォルトの名無しさん
2021/12/27(月) 08:32:17.24ID:Btn3kp2t >>731
> IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
なぜそうあるべきなのですか?
近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です
プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して
宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと
> IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
なぜそうあるべきなのですか?
近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です
プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して
宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと
733デフォルトの名無しさん
2021/12/27(月) 09:13:46.85ID:mFj7RPUl 今時プロトタイプベースがぁ、って言ってるのが時代遅れじゃねーの。
クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。
クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。
734デフォルトの名無しさん
2021/12/27(月) 09:41:04.48ID:VqPkBZyA735デフォルトの名無しさん
2021/12/27(月) 10:22:30.58ID:5b2Vj92V >>732
> 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
「多い」というのならまず具体的に名前を複数挙げてみろ。
出来なければそれは君の妄想だね。
> また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
違うぞ。それは今の話に関係ない。(どっちでもいい)
> 意図してたのはintellisenseのような意味解析が必要な機能です
だから何?これも君の考えが間違ってる。
flycheckのやり方でも原理的にインテリセンスは出来るんだよ。
インテリセンスで出なかったキーワードだとコンパイルエラーになるのなら、
仮にコンパイラが無限に速ければ、ソース内の全キーワードで試せば、コンパイルが通るキーワードのリストは得られる。
実際こんな事をしてる物はないと思うが、構文解釈で100%絞る必要なんて無くて、
候補が数個程度なら全部試してエラーが出なかった物を出す程度でも十分実用的なんだよ。
今時emacsでもインテリセンスするようだから、そんなにIDEが気になるのなら、彼等のアプローチを確認してみるといいよ。
全言語向けに自前でやってる事なんてないと思うよ。
プロトタイプを自分で追うのが技術的に無理なら、evalさせてgetPrototypeOfやinstanceofを使って追えばいいだけ。
自前の構文解釈器でソースからデータツリー構築をする気だからおかしくなる。
それはevalすれば実行エンジン内に構築されるものでしかないのだから、完全に再開発だろ。
eval出来る環境があり、それが一番近道なら、やればいいだけ。
君は多分「生産性」を勘違いしてる。
むしろ再開発しすぎてるし。
現状どうなってるのか知らないのだけど、メジャーなIDE、
例えばVSCodeとかだとクラスベースならインテリセンス出来るが、プロトタイプベースだと無理とかなのか?
誰か使ってたら教えてくれ。
> 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
「多い」というのならまず具体的に名前を複数挙げてみろ。
出来なければそれは君の妄想だね。
> また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
違うぞ。それは今の話に関係ない。(どっちでもいい)
> 意図してたのはintellisenseのような意味解析が必要な機能です
だから何?これも君の考えが間違ってる。
flycheckのやり方でも原理的にインテリセンスは出来るんだよ。
インテリセンスで出なかったキーワードだとコンパイルエラーになるのなら、
仮にコンパイラが無限に速ければ、ソース内の全キーワードで試せば、コンパイルが通るキーワードのリストは得られる。
実際こんな事をしてる物はないと思うが、構文解釈で100%絞る必要なんて無くて、
候補が数個程度なら全部試してエラーが出なかった物を出す程度でも十分実用的なんだよ。
今時emacsでもインテリセンスするようだから、そんなにIDEが気になるのなら、彼等のアプローチを確認してみるといいよ。
全言語向けに自前でやってる事なんてないと思うよ。
プロトタイプを自分で追うのが技術的に無理なら、evalさせてgetPrototypeOfやinstanceofを使って追えばいいだけ。
自前の構文解釈器でソースからデータツリー構築をする気だからおかしくなる。
それはevalすれば実行エンジン内に構築されるものでしかないのだから、完全に再開発だろ。
eval出来る環境があり、それが一番近道なら、やればいいだけ。
君は多分「生産性」を勘違いしてる。
むしろ再開発しすぎてるし。
現状どうなってるのか知らないのだけど、メジャーなIDE、
例えばVSCodeとかだとクラスベースならインテリセンス出来るが、プロトタイプベースだと無理とかなのか?
誰か使ってたら教えてくれ。
736デフォルトの名無しさん
2021/12/27(月) 10:51:32.02ID:gEDfakwV ×クラスベース
○クラス構文
クラス構文で書いてもプロトタイプベースなのは変わらん
○クラス構文
クラス構文で書いてもプロトタイプベースなのは変わらん
737デフォルトの名無しさん
2021/12/27(月) 11:21:14.15ID:mFj7RPUl738デフォルトの名無しさん
2021/12/27(月) 11:22:05.04ID:lxgQYw9b 言語仕様も分かってないIDEも使ってない部外者の素人同士が長文レスバって地獄だな
739デフォルトの名無しさん
2021/12/27(月) 11:54:45.10ID:Btn3kp2t >>735
> 「多い」というのならまず具体的に名前を複数挙げてみろ。
例えばgolangやrustはコアチームがツール開発に積極的ですね
ツールのチームがコア言語に対してフィードバックしていたりする
> eval出来る環境があり、それが一番近道なら、やればいいだけ。
"構文解釈機" という言葉を使っているから静的解析を意図してるのかと思ったけど動的解析も含んで言っていたのね
それで実用に耐えうる速度と精度が実現できるならそういうアプローチもありかもね
それから別にIDEが自前で静的解析器を開発すべきなんて主張はしてないから藁人形論法はやめてくれ
>>737
オブジェクト指向というか継承が忌避されてる気はする
> 「多い」というのならまず具体的に名前を複数挙げてみろ。
例えばgolangやrustはコアチームがツール開発に積極的ですね
ツールのチームがコア言語に対してフィードバックしていたりする
> eval出来る環境があり、それが一番近道なら、やればいいだけ。
"構文解釈機" という言葉を使っているから静的解析を意図してるのかと思ったけど動的解析も含んで言っていたのね
それで実用に耐えうる速度と精度が実現できるならそういうアプローチもありかもね
それから別にIDEが自前で静的解析器を開発すべきなんて主張はしてないから藁人形論法はやめてくれ
>>737
オブジェクト指向というか継承が忌避されてる気はする
740デフォルトの名無しさん
2021/12/27(月) 12:21:31.31ID:VwNgBMvN オブジェクト指向ならではの筆頭が継承だから継承が忌避されてる=オブジェクト指向が忌避されてるってことよ
OOPLが提供していた継承以外の特性の多く(カプセル化など)は抽象データ型から来ていてそれは時代遅れになってないし忌避されてもいない
OOPLが提供していた継承以外の特性の多く(カプセル化など)は抽象データ型から来ていてそれは時代遅れになってないし忌避されてもいない
741デフォルトの名無しさん
2021/12/27(月) 13:11:44.45ID:+2NyFcdP クラスの定義だけど、
classとfunctionを混在した書き方でも問題ないの?
classとfunctionを混在した書き方でも問題ないの?
742デフォルトの名無しさん
2021/12/27(月) 13:40:18.86ID:Uq9DqbRx >>741
混在した書き方っての次第だが
class A {}
A.prototype.x = () => {}
a = new A()
a.x()
こんなのは当たり前に動くぞ
つかまずは自分で試せよw
JSなんかブラウザあれば動かせるんだからさー
混在した書き方っての次第だが
class A {}
A.prototype.x = () => {}
a = new A()
a.x()
こんなのは当たり前に動くぞ
つかまずは自分で試せよw
JSなんかブラウザあれば動かせるんだからさー
743デフォルトの名無しさん
2021/12/27(月) 15:00:45.57ID:5b2Vj92V >>739
> 例えばgolangやrustはコアチームがツール開発に積極的ですね
それで、それらの言語のどの仕様がIDEの都合で採用されたものなの?
> 藁人形論法はやめてくれ
なら最初から分かるように主張しろ。
何が言いたいか分からないからエスパーして複数挙げてみただけ。
馬鹿は無視してきっちり自分の意見を書ききれ。
3行しか読めない馬鹿はプログラミングなんてどうやっても出来ない。
MDNその他のリファレンス見りゃ分かるが、そんな世界じゃない。
5ch程度の文にすら手こずるようではどだい無理だよ。
解釈が動的か静的かは意味無い。
出来るだけ早い段階でエラーを検出して修正したいだけであって、それが出来れば何だっていいんだよ。
その手段の一つが静的解析でソース作成時にエラーを表示する事であって。
でも、エラー表示だけなら、コンパイラやevalにぶち込めば出来るし、それをやってるっぽいのがflycheck。
構文解釈器を自前で作るとしても、クラス構文でもプロトタイプ構文でも、大して難易度は変わらない気もするが。
実際に問題になるのは、構文解釈そのもの、具体的にはJS的な様々な書き方でも問題なく動くパーサの構成だろ。
構文解釈後の親class/プロトタイプ追跡なんて辿ればいいだけだからアホでも出来る。
それで今時のIDEで実際どうなのか聞いたんだよ。
もしプロトタイプ構文ではインテリセンスが動かないのなら、何か理由はあるのだろうけど。
継承が忌避されてるのは、JAVAでは関数ポインタが使えず、同様の事をするためには継承をこねくり回すしかなくて、
それの残骸がデザインパターンなのだが、
結果、継承すべきでない局面での継承で酷い事になってるからだよ。
でも、継承すべき場所では継承した方がよくて、全部捨ててるGoはいちいち全部書かないといけないのが糞。
あれは1周目はまだしも、2周目以降でそのコピペされたソースにメンテコストがかかるから、先すぼみになると予想してる。
Rustはやってないから知らん。
> 例えばgolangやrustはコアチームがツール開発に積極的ですね
それで、それらの言語のどの仕様がIDEの都合で採用されたものなの?
> 藁人形論法はやめてくれ
なら最初から分かるように主張しろ。
何が言いたいか分からないからエスパーして複数挙げてみただけ。
馬鹿は無視してきっちり自分の意見を書ききれ。
3行しか読めない馬鹿はプログラミングなんてどうやっても出来ない。
MDNその他のリファレンス見りゃ分かるが、そんな世界じゃない。
5ch程度の文にすら手こずるようではどだい無理だよ。
解釈が動的か静的かは意味無い。
出来るだけ早い段階でエラーを検出して修正したいだけであって、それが出来れば何だっていいんだよ。
その手段の一つが静的解析でソース作成時にエラーを表示する事であって。
でも、エラー表示だけなら、コンパイラやevalにぶち込めば出来るし、それをやってるっぽいのがflycheck。
構文解釈器を自前で作るとしても、クラス構文でもプロトタイプ構文でも、大して難易度は変わらない気もするが。
実際に問題になるのは、構文解釈そのもの、具体的にはJS的な様々な書き方でも問題なく動くパーサの構成だろ。
構文解釈後の親class/プロトタイプ追跡なんて辿ればいいだけだからアホでも出来る。
それで今時のIDEで実際どうなのか聞いたんだよ。
もしプロトタイプ構文ではインテリセンスが動かないのなら、何か理由はあるのだろうけど。
継承が忌避されてるのは、JAVAでは関数ポインタが使えず、同様の事をするためには継承をこねくり回すしかなくて、
それの残骸がデザインパターンなのだが、
結果、継承すべきでない局面での継承で酷い事になってるからだよ。
でも、継承すべき場所では継承した方がよくて、全部捨ててるGoはいちいち全部書かないといけないのが糞。
あれは1周目はまだしも、2周目以降でそのコピペされたソースにメンテコストがかかるから、先すぼみになると予想してる。
Rustはやってないから知らん。
744デフォルトの名無しさん
2021/12/27(月) 15:36:34.22ID:KDGmbGA4 何言ってるか分からない相手にエスパーして反論って藁人形そのもので完全に異常者
745デフォルトの名無しさん
2021/12/27(月) 15:55:56.69ID:h2/Ma5NI いい加減スレチだから他所でやってもらえんかね
このスレ伸ばすにしてもnodeにScheduling APIが入ったとか普通にネタあるだろ
このスレ伸ばすにしてもnodeにScheduling APIが入ったとか普通にネタあるだろ
746デフォルトの名無しさん
2021/12/27(月) 16:04:01.18ID:XkNPDe9x 最近アツいサーバサイドJSはnodeよりもdenoよりもCloudflare Workers
747デフォルトの名無しさん
2021/12/27(月) 16:21:39.89ID:U0LFk7o9 denoって全然使われてないの?
748デフォルトの名無しさん
2021/12/27(月) 16:28:54.26ID:XkNPDe9x denoは苦戦してるみたいだねー
それでexpressなどnode用のライブラリが動くように互換性を高める方針になった
でもそれならnode使い続ければいいやってなりそう
それでexpressなどnode用のライブラリが動くように互換性を高める方針になった
でもそれならnode使い続ければいいやってなりそう
749デフォルトの名無しさん
2022/01/05(水) 00:01:04.66ID:XksPZRYQ puppeteerを使って投票サイトの投票を自動化したいのだけど、
実行してもエラーを起こさず無反応なんだよね
Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、
UserAgent以外で何か対策ないっすかね
実行してもエラーを起こさず無反応なんだよね
Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、
UserAgent以外で何か対策ないっすかね
750デフォルトの名無しさん
2022/01/05(水) 00:22:23.97ID:n516+jFB いくらでも試すことはあるけど悪事の片棒を担ぎそうで怖いな
一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける
一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける
751デフォルトの名無しさん
2022/01/05(水) 00:33:19.61ID:XksPZRYQ んじゃ、逆にWEBサイトを作る側はどんな対策をしているのでしょうか?
752デフォルトの名無しさん
2022/01/05(水) 10:54:49.76ID:4mwV9n2W reCAPTCHA使ってんじゃない?
753デフォルトの名無しさん
2022/01/05(水) 15:02:25.17ID:XksPZRYQ754デフォルトの名無しさん
2022/01/05(水) 15:47:16.38ID:w42D9Ab/ 手動で操作した時のリクエストヘッダーの中身を解析して
間違いなく妥当なリクエストが投げられてるのが大前提
あとは“how to detect headless browser”でググるといいよ
間違いなく妥当なリクエストが投げられてるのが大前提
あとは“how to detect headless browser”でググるといいよ
755デフォルトの名無しさん
2022/01/06(木) 22:16:32.70ID:vwKSLmqQ npmがぶっ壊れたらどうすればいいですかapt でuninstall installしても治りません
756デフォルトの名無しさん
2022/01/10(月) 00:21:58.20ID:MINWORCd スレ立てるまでもない質問はここで 158匹目
https://mevius.5ch.net/test/read.cgi/tech/1635193843/538
ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた
基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理
Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている
これほど、良い教科書が揃っているフレームワークはない!
Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw
日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA
https://mevius.5ch.net/test/read.cgi/tech/1635193843/538
ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた
基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理
Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている
これほど、良い教科書が揃っているフレームワークはない!
Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw
日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA
757デフォルトの名無しさん
2022/02/19(土) 23:48:14.35ID:ukL0Abnm for await (const chunk of stream(foo)) {
response.write(chunk);
}
response.end();
↑みたいな感じでレスポンスに直接書いてってるやつって、一旦に変数に入れることって可能?
const chunks;
for await (const chunk of stream(foo)) {
// chunksにchunkを書き込んでいく
}
response.write(chunks);
res.end();
↑こんな感じに書きたくてさ
レスポンスのサイズを減らしたくてzlibのコード見たらレスポンスを直接圧縮するんじゃなくて、オブジェクトを圧縮してそんでレスポンスにパイプって感じに見えたもんで
ただ書き方がよく分からんくてね
response.write(chunk);
}
response.end();
↑みたいな感じでレスポンスに直接書いてってるやつって、一旦に変数に入れることって可能?
const chunks;
for await (const chunk of stream(foo)) {
// chunksにchunkを書き込んでいく
}
response.write(chunks);
res.end();
↑こんな感じに書きたくてさ
レスポンスのサイズを減らしたくてzlibのコード見たらレスポンスを直接圧縮するんじゃなくて、オブジェクトを圧縮してそんでレスポンスにパイプって感じに見えたもんで
ただ書き方がよく分からんくてね
758デフォルトの名無しさん
2022/02/20(日) 02:19:47.65ID:flSfy5Gd そんな感じのコードでやれると思うけど
ただ局所的な負荷を避けるStreamの利点が消えちゃうぞ
ただ局所的な負荷を避けるStreamの利点が消えちゃうぞ
759デフォルトの名無しさん
2022/02/20(日) 02:30:31.20ID:r6gz02kC > レスポンスにパイプ
stream.pipeline()関数を使えってこった
stream.pipeline()関数を使えってこった
760デフォルトの名無しさん
2022/02/20(日) 03:59:37.87ID:Y4d5gioW >>757
chunksに貯め込んでからzlib.gunzip()やzlib.inflate()を呼んでいたらメモリの無駄遣い
そこでzlib.createGunzip()やzlib.createInflate()で変換用streamを作って使う
それも昔はinput_stream.pipe(transform_stream).pipe(ourput_stream)と多段に繋げていたが
しかし速度差がある時のバッファリング問題もあるため一気に協調させることになり
今はpipeline(input_stream, transform_stream, ourput_stream, cb) と好きなだけ並べて書く
chunksに貯め込んでからzlib.gunzip()やzlib.inflate()を呼んでいたらメモリの無駄遣い
そこでzlib.createGunzip()やzlib.createInflate()で変換用streamを作って使う
それも昔はinput_stream.pipe(transform_stream).pipe(ourput_stream)と多段に繋げていたが
しかし速度差がある時のバッファリング問題もあるため一気に協調させることになり
今はpipeline(input_stream, transform_stream, ourput_stream, cb) と好きなだけ並べて書く
761デフォルトの名無しさん
2022/02/20(日) 13:07:52.69ID:G2bzmeXG 758 759 760
ありがとう
pipelineってやつ使うとよいみたいやね
調べてみますわ
ありがとう
pipelineってやつ使うとよいみたいやね
調べてみますわ
762デフォルトの名無しさん
2022/05/08(日) 08:50:47.73ID:Hc0pjWMa なんでchildprocessのイベントにはSIGINTが実装されてないんだろ
それでいて親から伝搬はするからdetached入れて切り離さないと落ちちまう
親同様にリスナー付けてexitを止められるようにするべきだと思うんだが
それでいて親から伝搬はするからdetached入れて切り離さないと落ちちまう
親同様にリスナー付けてexitを止められるようにするべきだと思うんだが
763デフォルトの名無しさん
2022/10/10(月) 18:43:55.67ID:MKhHDYOQ 相対パスでローカルモジュールをnpm iするとdependencieではfile:から始まる相対パスになるけど
実際これは完全に無視されて同時に作成されるnode_modules以下のsymlinkが読み込まれるんだな
なんでこんな実装になってんだ
実際これは完全に無視されて同時に作成されるnode_modules以下のsymlinkが読み込まれるんだな
なんでこんな実装になってんだ
764デフォルトの名無しさん
2022/10/10(月) 18:53:57.82ID:MKhHDYOQ いや更新時の参照用ならこれでいいのか
nodeのrequire/importとnpmのinstall/updateを混同してたわ
nodeのrequire/importとnpmのinstall/updateを混同してたわ
765デフォルトの名無しさん
2022/10/12(水) 13:25:20.11ID:pFlsWqq0 バックエンドnode.jsだけで食っていけますか
766デフォルトの名無しさん
2022/10/12(水) 13:50:41.51ID:PMp24lyt nodejs単体というよりOODBの管理ととトランザクションいじれるようになるのが一番じゃね?
767デフォルトの名無しさん
2022/10/20(木) 13:26:50.96ID:qyQuWblL >>765
可能と言えば可能だけど無理と言えば無理
結局何作って金稼ぐかに帰ってくる
PHPerがCRUDをLaravelで作って納品してるような事はNode.jsでも出来るけど
人口多いPHPでやれば良くないっすか?で詰む
改めてNode.jsを使う意味に戻ってくる
可能と言えば可能だけど無理と言えば無理
結局何作って金稼ぐかに帰ってくる
PHPerがCRUDをLaravelで作って納品してるような事はNode.jsでも出来るけど
人口多いPHPでやれば良くないっすか?で詰む
改めてNode.jsを使う意味に戻ってくる
768デフォルトの名無しさん
2022/10/21(金) 14:23:53.93ID:QgmICw4I この業界ってnodeよりphpのほうが多いの?
769デフォルトの名無しさん
2022/10/21(金) 17:27:25.06ID:yOIwuGST nodeはhttpサーバ目指してんのか
クロスプラットフォームのコマンドツール群目指してんのか
立ち位置が分かりにくくなってきてるなぁ。
クロスプラットフォームのコマンドツール群目指してんのか
立ち位置が分かりにくくなってきてるなぁ。
770デフォルトの名無しさん
2022/10/21(金) 17:37:31.50ID:gaBKDdgt771デフォルトの名無しさん
2022/10/21(金) 20:11:01.49ID:ho0gY/No 立ち位置としては単なるJSのランタイムだから別に迷走はしてない
あれもこれもできている現状は目標が達成できている状態だな
あれもこれもできている現状は目標が達成できている状態だな
772デフォルトの名無しさん
2022/10/21(金) 20:53:45.43ID:r+LUs0oF 自分が作りたいものを実現できるならそれでいいし
773デフォルトの名無しさん
2022/10/22(土) 10:24:29.33ID:nOyTQUKy またnpmとbowerに分かれるのか
774デフォルトの名無しさん
2022/10/22(土) 12:20:56.88ID:J0WzfMNr775デフォルトの名無しさん
2022/12/01(木) 15:22:36.40ID:gR9AoUvr npm@9にしたらupdate時にinstall済みのローカルモジュールがsymlinkから実ファイルコピーに書き換えられた
--install-linksの挙動変更だけじゃなかったのか
--install-linksの挙動変更だけじゃなかったのか
776デフォルトの名無しさん
2023/01/09(月) 13:40:55.90ID:pkwz3DCl substackがGithubリポジトリごと全部消してるけど何かあったのか
npmは基本消せないから今のところは支障ないけど
npmは基本消せないから今のところは支障ないけど
777デフォルトの名無しさん
2023/01/09(月) 15:20:15.81ID:QAUxwh3d スマホ持ってないのに2段階認証押し付けられて嫌気がしたからとか見かけたな
778デフォルトの名無しさん
2023/01/09(月) 19:48:04.21ID:pkwz3DCl 思ったよりしょうもなかったがバイク事故とかじゃなくてよかったわ
779デフォルトの名無しさん
2023/01/26(木) 12:54:12.49ID:O11XvwYM TSのバックエンドでファイル処理つったらstreamでいいのかな
BufferとかBlobは要らん子?pipeってのもあるらしくて混乱中
BufferとかBlobは要らん子?pipeってのもあるらしくて混乱中
780デフォルトの名無しさん
2023/01/26(木) 13:13:59.54ID:f8HqO3bH 最初はfs.writeFileとfs.readFileを使え
streamは小刻みにデータを処理する方法でpipeはその際の繋ぎ役
BufferやBlobはデータをメモリ上で扱う際の形式の一つ
TS以前にJSの基礎が怪しいから入門サイトなぞったほうがいいぞ
streamは小刻みにデータを処理する方法でpipeはその際の繋ぎ役
BufferやBlobはデータをメモリ上で扱う際の形式の一つ
TS以前にJSの基礎が怪しいから入門サイトなぞったほうがいいぞ
781デフォルトの名無しさん
2023/01/26(木) 13:26:12.10ID:O11XvwYM782デフォルトの名無しさん
2023/01/26(木) 14:46:29.69ID:gEyoKRRe BufferはNode固有のAPI
Blobは後から出てきたWeb (ブラウザ) のAPI
そしてTypedArrayBufferはECMAScriptのAPI
ストリームとかURLとか他にも重複してるのが多数ある
Blobは後から出てきたWeb (ブラウザ) のAPI
そしてTypedArrayBufferはECMAScriptのAPI
ストリームとかURLとか他にも重複してるのが多数ある
783デフォルトの名無しさん
2023/01/26(木) 15:24:22.66ID:G0G6dXL8784デフォルトの名無しさん
2023/02/10(金) 08:27:38.73ID:WC55EdF2 今ってORMはPrisma一択?
785デフォルトの名無しさん
2023/02/10(金) 10:01:03.33ID:9VW44qMw 勢いでは完全に負けてるが一応TypeORMもあるんじゃね
786デフォルトの名無しさん
2023/03/01(水) 14:51:23.19ID:dWfTEqUX util.aborted()が生えたけど用途がわからん
787デフォルトの名無しさん
2023/07/27(木) 23:08:16.03ID:nxFTW9tq nodejsでDBマネージャーとかログマネージャーとか、可能な限り同一インスタンスを維持したいインスタンスって一般的にどうしてますでしょうか。
class DbManager{
private constructor(){}
static instance = new DbManager();
}
staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。
他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。
毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか
class DbManager{
private constructor(){}
static instance = new DbManager();
}
staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。
他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。
毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか
788デフォルトの名無しさん
2023/07/28(金) 01:56:41.01ID:HsfaqfZ/ 常に引数で外部注入して生成するけど
引数にundefinedが来たら自動的にデフォルト注入を使って生成かな
引数にundefinedが来たら自動的にデフォルト注入を使って生成かな
789デフォルトの名無しさん
2023/07/28(金) 03:31:39.50ID:H/mKlItN >>788
ありがとうございます。
そうなると大半がデフォルトなんだから、もう毎回書かなくていいや〜 ってなってしまいそう…
とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。
ありがとうございます。
そうなると大半がデフォルトなんだから、もう毎回書かなくていいや〜 ってなってしまいそう…
とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。
790デフォルトの名無しさん
2023/07/28(金) 09:58:33.60ID:Za7BrkqV ファイル(モジュール)のトップレベルで
export const instance = new Xxx();
で十分
Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ
export const instance = new Xxx();
で十分
Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ
791デフォルトの名無しさん
2023/07/28(金) 10:36:22.85ID:HsfaqfZ/ singletonならそれでいいね
792デフォルトの名無しさん
2023/07/28(金) 12:39:37.08ID:Zbfe02RK793デフォルトの名無しさん
2023/08/18(金) 15:34:38.37ID:ccv6NoZV やめてっ!そこはビンカンなの!
794デフォルトの名無しさん
2023/10/13(金) 21:17:44.43ID:uv+WVTr3 おぉ(゚ロ゚屮)屮
795デフォルトの名無しさん
2024/06/07(金) 19:13:05.87ID:pMHNGLdE Prismaが快適すぎて最近はこれ使いたいがためにnode使ってるまであるわ
たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる
たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる
796デフォルトの名無しさん
2024/07/22(月) 05:05:01.65ID:lDVL1NiC わざわざランタイム側でsqlite内蔵する意味がわからん
暇なのか
暇なのか
レスを投稿する
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【スパイト行動】俺のコ,ードを入れれば1500円貰えるのに、俺に1500円をやりたくないからやらない ⇐これが日本人ってやつか… [201193242]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
