【node.js】サーバサイドjavascript 5【Nashorn】 at TECH
[2ch|▼Menu]
[前50を表示]
600:デフォルトの名無しさん
20/11/22 09:31:06.57 7U8BOc5J.net
>>597-599
ありがとう。バージョン確認方法の方が間違ってたのか。
あぶねえ。パッケージ側の情報で確認してたら、何を試しても永遠に出来ないって言ってるところだったw
改めて確認したら、ちゃんと5.xが入ってた。
お騒がせしました。
$ npm ls express | grep express
└─ express@5.0.0-alpha.8

601:デフォルトの名無しさん
20/11/23 12:57:39.74 3jYl7MgH.net
node.jsのドキュメントや書籍等で、セキュリティー対策を考慮して書かれているものがあれば教えてください

602:uy
20/11/24 12:43:32.88 gfNKbZsO.net
>>601
(u_・y)っURLリンク(asciimw.jp)

603:デフォルトの名無しさん
21/01/01 19:21:03.31 /+4IUuLb.net
さくらVPSとかのlinuxサーバにwebアプリをデプロイするベターな手順ってなんかありますか
単純に考えれば、既存のサーバ中のプロジェクトフォルダを消して gitから新しくpullしてnpm ciすればいいはずなんだが
・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
・ローカルの設定、ログフォルダといった、消したくないフォルダがある
からちょっと面倒でなんとかしたい
nodejs deployment tool とかで検索しても、すぐ自社のSaasに誘導しようとして
素のEC2的なlinuxマシンでの方法が分からなかった。

604:デフォルトの名無しさん
21/01/02 03:22:23.36 HtnkmSa8.net
普通にDockerでnpm i後のイメージ作ればいいんじゃない

605:デフォルトの名無しさん
21/01/02 04:25:18.76 VICQRi/P.net
>>604
ありがとうございます。やはりdockerか。
docker使えない自分はこんな感じでやっていました。
>・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
git fetchした後git diff HEAD..origin/master -- package.json で変更があるか確認出来る。
変更があった場合のみnpm installすればいい。
>・ローカルの設定、ログフォルダといった、消したくないフォルダがある
ログフォルダや設定ファイルは.gitignoreしてあるはずだから、気にせず毎回git merge origin/master しても全く問題ないはず。
深く考えすぎてて、普通に手を動かしたら違和感なくデプロイ出来ました。

606:デフォルトの名無しさん
21/03/01 09:14:19.43 vtDgs//2.net
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

607:デフォルトの名無しさん
21/03/01 09:46:34.15 g7xhMPQT.net
タイムゾーン

608:デフォルトの名無しさん
21/03/01 11:40:37.52 vtDgs//2.net
>>607
ボケてました。
ありがとうございました。

609:デフォルトの名無しさん
21/03/01 17:11:01.18 Jj2WQfq1.net
npm outdateをCLIじゃなくてNode側から使う方法ってない?
stdoutからパースするのは流石に手間で

610:デフォルトの名無しさん
21/03/01 17:57:45.51 LQGHEOvf.net
こいつを直接使えばいんじゃねーの知らんけど
URLリンク(github.com)

611:デフォルトの名無しさん
21/03/01 22:10:08.82 Jj2WQfq1.net
>>610
thx
試しにnode_modules/lib/outdated.jsがexportしてる関数を叩いてみたけど
内部のglobalディレクトリ参照でコケているようなエラーが出て機能しなかった
npm自体がModとしてのexportするのもAPIのないEventEmitterインスタンスだし想定してなさそうだ
諦めて自前で実装しているユーザーパッケージを適当に探すよ

612:デフォルトの名無しさん
21/03/11 17:50:04.24 UcSYqbju6
シェア買いアプリ「カウシェ」運営のX Asia、副業メンバー向け昇給制度等を定めた人事制度「KAUCHE de WORK」を制定
URLリンク(prtimes.jp)
「お試し転職」じわり広がる 副業が人材流動化に風穴
URLリンク(www.nikkei.com)
キャリアSNS「YOUTRUST」が登録ユーザー数30,000人を突破
2020年10月の20,000人突破発表から、2ヶ月で10,000人のユーザー増
URLリンク(prtimes.jp)
副業解禁やコロナ禍をきっかけに68%が資産形成に関心、本業の収入減を理由に44%が別の収入の柱を作り始める
URLリンク(prtimes.jp)
日本初、研究開発に特化した業務委託マッチングプラットフォームCipher(サイファー)の試験運用を開始
URLリンク(prtimes.jp)
幹部人材・事業承継者候補に特化した地方転職Webプラットフォーム『Glocal Mission Jobs』
地銀・人材紹介会社等業務提携先が100社に
URLリンク(prtimes.jp)
overflowが考える「複業転職」がスタンダードになる未来
URLリンク(hrnote.jp)
東海オンエア・りょうが考えるこれからの“働き方” デュアルキャリアは「率直に言うと…」
URLリンク(news.yahoo.co.jp)

613:デフォルトの名無しさん
21/04/24 07:20:56.16 CqGuC/ho.net
JavaScript/TypeScriptランタイム環境「Deno 1.9」がリリース、パフォーマンス向上に寄与する機能追加など
URLリンク(codezine.jp)

614:デフォルトの名無しさん
21/07/14 17:16:26.21 x3WS9adn.net
質問ってここで良いの?
Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの?
いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり
package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない

615:デフォルトの名無しさん
21/07/16 23:12:53.43 ku0oROTf.net
dnsモジュールのgetServers()が初回実行時の内容キャッシュしてて使い物にならん
>>614
フロントエンドスレが一応立ってるからそっちで聞いてみれば
あとはWeb制作板に質問スレあったけど大分前に荒らしに乗っ取られて今はどうなってるやら

616:デフォルトの名無しさん
21/07/30 15:13:55.95 COPEXZUK.net
Ubuntu18.04でNode.js8.10.0を使ってるのですが、
BigIntのリテラル(例:10N)が使えません。
どうやったら使えるように出来るのでしょう?

617:デフォルトの名無しさん
21/07/30 15:53:45.87 0CdNCLhG.net
Node.jsをv12以上にする(細かいこと言うとv10の途中から使える)

618:デフォルトの名無しさん
21/07/30 17:48:26.38 n/UloM9p.net
漏れは、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 公式サイト
URLリンク(github.com)
anyenv + macOS環境構築
URLリンク(qiita.com)
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

619:615
21/07/30 18:08:58.02 n/UloM9p.net
anyenv などを使わず、
Docker で探した方が、もっと簡単かも
apt でインストールした、Node.js 8 は、アンインストールすれば良い

620:デフォルトの名無しさん
21/07/30 18:19:19.46 7AkGA5GJ.net
スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?

621:デフォルトの名無しさん
21/07/30 21:07:04.19 AXk+vMk4.net
今ならPuppeteerか同種のヘッドレスブラウザで実装するのが楽
通常の用途であればセキュリティを気にする部分はない
不正アクセスはまたの問題だから他の質問スレで聞こう

622:613
21/07/31 11:22:07.03 A0amfNLA.net
皆さんありがとうございました。
最新のLTS版Node.jsを入れたらBigIntなリテラル(N)が使える様になりました。
どのようにUbuntu18.04に最新版をインストールしたかと申しますと。
 1. npmでnコマンドをインストール
 2. nコマンドで最新LTS版Node.jsをインストール
 3. aptでインストールしていたnodejsとnpmをアンインストール(依存も解消)
です。

623:615
21/07/31 11:37:20.92 tQlroryC.net
NVM, n も、知ってるけど、
各言語ごとに、ツールの使用方法を覚えるのが大変
全言語で使用方法が統一されている、anyenv, asdf が良い。
最近はどの言語も、Docker が多い

624:613
21/07/31 12:37:39.44 A0amfNLA.net
>>623
Node.jsでパッケージングされているプログラムだけで完結できるのに、
新しいNode.jsにする上で、
他のプログラムや仮想化に依存しなくてはいけない理由は何ですか?
仮想環境が便利だ等であれば別の話だと思うのですが。
私はC/C++、Java、Perl、JavaScript(フロント少々)使いで、
最近Node.jsに手を出し始めたのですが、
anyenvやasdfについては全く存じ上げませんでした。
それらを覚える事によって、
それらのラーニングコストを上回る恩恵を授かれるとは思いませんでした。
>>617さんのアドバイスから>>622まで行き着いた次第で、
シンプルに管理コストを抑えられるるのが一番だとも思っています。

625:デフォルトの名無しさん
21/07/31 16:07:39.01 nZmJDmGx.net
好きなもん使えばいい
俺もubuntuではaptでクソ古いNode入れてからnpmでn入れてnからlatest突っ込んでるよ

626:デフォルトの名無しさん
21/07/31 17:22:45.59 23Q0KlZH.net
ruby 君の言うことを真に受けてはいけない

627:デフォルトの名無しさん
21/07/31 19:12:03.00 8Bi9zOKj.net
Ubuntu-ltsのデフォnodejsが10.xだもんなあ
オレの環境では動かない、とか言われても知らねえよ。NodeJS公式もサポートしないバージョンまでカバーできる訳ないだろうが

628:デフォルトの名無しさん
21/08/04 17:08:54.13 O4k/EVJC.net
「Electron」と「WebView2」はどう違う? 〜「Electron」の開発チームが解説
URLリンク(forest.watch.impress.co.jp)

629:デフォルトの名無しさん
21/08/04 19:09:25.30 qrQ4Lnon.net
>>628
ただの翻訳(かつ雑な簡素化)記事なのにその旨の記述がない
画像も元ブログからの転載(盗用)だけどクレジット無し
大手メディアでこれって大丈夫か?

630:デフォルトの名無しさん
21/08/04 19:20:49.91 L5LJfz6s.net
丸コピしたのとは違うと思うぞ
画像の方はアウト臭いな

631:デフォルトの名無しさん
21/08/24 08:49:56.10 YRe/N1mJ.net
node.jsのconsole.logのpretty printをデフォルトでやめさせる方法ないのかな?
このおせっかい機能すごくいらいらするのは俺だけかな?

632:デフォルトの名無しさん
21/08/24 10:42:50.46 5pgrc+RU.net
process.stdout.write使え
console.logはブラウザに寄せようと頑張ってるんやろ

633:デフォルトの名無しさん
21/08/24 15:31:19.22 qPWgCxGJ.net
puppeteerを使ってるプログラムをwebpackでバンドルすると、distにはChromiumが無いからエラーが出ちゃうわ
よく分からん

634:デフォルトの名無しさん
21/08/24 18:06:53.00 Ya+eWSVV.net
Webサイトのコンテキストで動かしてるならDevToolsとセッション張れないから意味ないぞ
URLリンク(github.com)

635:デフォルトの名無しさん
21/08/28 10:29:55.37 rJz23Izt.net
nodeで作ってるapiがメモリ使用量1GBくらいでかなりベビーなんですけど
ここら辺のパフォーマンスチューニングについての知見がまとまってるサイトか書籍ないですかね?

636:デフォルトの名無しさん
21/08/28 14:06:05.96 TLYe8gOd.net
>>635
URLリンク(www.youtube.com)

637:デフォルトの名無しさん
21/09/01 09:26:26.45 J/+xOU5Y.net
>>636
あざます!

638:デフォルトの名無しさん
21/09/06 01:52:20.93 B6t4Zwws.net
Fastifyいいな

639:デフォルトの名無しさん
21/09/15 19:03:06.18 fHmj5hYp.net
スクレイピングすると地獄へ落ちるって本当ですか?

640:デフォルトの名無しさん
21/09/15 20:01:32.00 DvcCOYYc.net
puppeteerのplaygroundでforループすれば任意の回数地獄に落ちられるぞ

641:デフォルトの名無しさん
21/09/18 03:38:26.28 YPBxfQEw.net
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります

642:デフォルトの名無しさん
21/09/18 04:59:36.02 ZvozewrD.net
マルチポストすんな

643:デフォルトの名無しさん
21/09/18 18:16:18.88 J85RgKD5.net
頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください

>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?

644:デフォルトの名無しさん
21/09/19 01:37:30.15 k7BgVJB0.net
node初心者だけどnpmが脆弱性情報吐きまくってこわい

645:デフォルトの名無しさん
21/09/19 13:46:28.11 k7BgVJB0.net
ググったらauditはクソ設計みたいな記事が出てきた
無視して良かったんだね
いままで膨大な時間を無駄にしてた…(´Д`)ハァ…

646:デフォルトの名無しさん
21/10/10 13:43:36.36 rC7NAnza.net
なんか変な場所でエラー投げられてプロセスが止まると思ったら
依存Modの一つがPromiseコンストラクタのcallback内で非同期エラー投げて止まっていた
そりゃrejectしないしcatchブロックにも引っ掛からんわどうすりゃいいねん

647:デフォルトの名無しさん
21/10/10 17:42:53.02 6Ldb4KuL.net
そんな事は4,000年に一度しかないからヨシ!

648:デフォルトの名無しさん
21/10/10 18:08:01.88 aEbL1282.net
>>646
その依存モジュールを捨てる

649:デフォルトの名無しさん
21/10/10 20:04:03.47 rC7NAnza.net
最悪プルリク投げるかと思ってリポジトリ見たら消えてた
捨てて自分で書くわ

650:デフォルトの名無しさん
21/10/10 20:07:36.51 zb1mAGkH.net
>>649
お疲れさん。ちな何て言うモジュール?

651:デフォルトの名無しさん
21/10/10 20:11:13.74 rC7NAnza.net
具体名は避けるけどProxy関連
自前のDNSBL作るのに使ってる

652:デフォルトの名無しさん
21/10/20 02:52:30.75 7Ch1Hu5l.net
スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか?

653:デフォルトの名無しさん
21/10/20 07:42:40.20 442/7USe.net
マルチ

654:デフォルトの名無しさん
21/10/21 01:45:51.47 Z5+NocI4.net
17でStrcturedCloneの実装来るのか
もうv8にある似たようなAPI使わなくてよくなるのな

655:デフォルトの名無しさん
21/10/25 18:50:04.02 xfFAFxQ2.net
パッケージ管理ツールのnpmで公開されている「UAParser.js」は、ユーザーエージェントの判定処理を
実行するJavaScriptライブラリであり、Facebook・Microsoft・Amazon・Googleなどの超大手企業を
含む1000以上のプロジェクトで採用されています。
そんなUAParser.jsがハッカーによってハイジャックされ、LinuxおよびWindowsデバイスを対象に暗号
資産採掘やパスワードの盗難を行うトロイの木馬が仕込まれていたことが判明しました。

656:デフォルトの名無しさん
21/10/25 18:55:04.53 WgjrPOfi.net
GIGAZINEからのコピペだろうけどちゃんと引用元URL貼っとけよ

657:デフォルトの名無しさん
21/11/17 15:53:34.41 OJq8ALeu.net
上にもちょっとありましたが、レンタルサーバでnode.jsを動かすのって現実的じゃないもんなんですか?

658:デフォルトの名無しさん
21/11/17 16:00:07.09 lSu1Xmea.net
いや全然
上にある「レン鯖はPHP」ってレスは恐らく既に環境を構築済みで
あとは実行する.phpを配置するだけのWebスペースを想定したレス

659:デフォルトの名無しさん
21/11/17 16:22:49.28 sYjDCVja.net
node.js使えるレンサバってあるの?

660:デフォルトの名無しさん
21/11/17 16:34:28.88 lSu1Xmea.net
>>658に書いたような実質Webスペースの共有レン鯖でも端末触れる一部では使えるよ
占有型ではもちろん使えるけど今なら間違いなくVPSのほうがいい

661:デフォルトの名無しさん
21/11/17 17:46:17.02 +3kxan1m.net
古き良きLAMP環境に拘る理由がないなら好きにしたら良い

662:デフォルトの名無しさん
21/11/17 23:30:54.62 YG2/9hEL.net
>>659
昔ながらのFTPとかでファイル置くしかできないようなサービスならまずそんなもの導入されてないだろうな

663:デフォルトの名無しさん
21/11/25 05:21:15.21 HW7nta/v.net
gulp4でejsをを使用したい + 別のタスクと記述方法を統一したいのですが
どうしてもエラーが解消できないのでどなたかご教授頂けませんか?(exportsにオブジェクトを突っ込む方法)
古い記述方法では動作しますが、新しい記述方法ではどうしても動作しません。
色々ググったのですが、どのサイト(英語サイトも含め)も古い記述方法で書かれており困っています。
公式も古い書き方に記述されています。(ejsだけ新しい書き方に対応していない?)
URLリンク(www.npmjs.com)
//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;

664:デフォルトの名無しさん
21/11/25 06:59:11.02 nh0ZEMSE.net
このエラーメッセージで検索すれば?
それか、意味を考えてみれば?
The following tasks did not complete
Did you forget to signal async completion?
もっと単純な例で、動くかどうか試してみれば?

665:デフォルトの名無しさん
21/11/25 07:24:22.11 QOEXsJ22.net
>>663
状況全く分からんが、JSのパーサーはややおかしい?所があって、returnの後はぶった切られる。
よって、 return gulp.src(srcPath.ejs).pipe(ejs()); と改行を無くして試す事を勧める。

666:デフォルトの名無しさん
21/11/25 07:46:08.16 88pS2ZzI.net
>>663
URLリンク(developer.mozilla.org)

667:デフォルトの名無しさん
21/11/25 08:25:42.47 QOEXsJ22.net
>>666
これ return と yield (と後置演算子もか?)はパーサの仕様バグだよな?
直感的じゃ無いという意味で。

668:デフォルトの名無しさん
21/11/25 08:37:10.78 acYGqwrp.net
仕様だよ
お前の直感がおかしい

669:デフォルトの名無しさん
21/11/25 08:57:16.71 QOEXsJ22.net
>>663
いや実際660はそうしてるだろ。俺も以前嵌った事があったし、
実際セミコロン必須の言語だとどこで切ってもいいから、660の書き方はよく見るよ。
俺はお前がおかしいと思うが。
結局これもMDNで説明するのに例外扱い("no LineTerminator here" 規則)になってるし。
統一された文法ではないよね。(=もっとましな仕様にする事も出来たし、実際他言語はそう)

670:デフォルトの名無しさん
21/11/25 08:57:57.52 QOEXsJ22.net
すまん分かると思うが 666 は >>668

671:デフォルトの名無しさん
21/11/25 09:45:34.63 6PNOZvLH.net
>>669
その書き方よくみるというけど
1行で書けば見やすいのにわざわざ複数行で見にくくしている意図がわからない

672:デフォルトの名無しさん
21/11/25 10:02:02.58 QOEXsJ22.net
>>671
そりゃ、そうした方が見やすいと思う人がそうするだけだよ。
お前がそう思わなければしなければいいだけ。
ただ実際、660にある公式のコードもそうなってるだろ。
俺も個人的には横に長いコードを書くけど、一般的には縦に長いコードの方が多いと思うよ。

673:デフォルトの名無しさん
21/11/25 10:13:11.42 rnpiht7q.net
returnの直後に改行してないからASI関係なくないか?

674:デフォルトの名無しさん
21/11/25 10:19:20.71 QOEXsJ22.net
>>673
660の「新しい記述方法だと動かない」とされてるコードは return gulp で改行してる。
660内の公式はこれが出来ない事を知ってるから、 gulp.src(...) で改行してる。(ただしreturnはないが)

675:デフォルトの名無しさん
21/11/25 10:26:17.55 6PNOZvLH.net
>>672
それは長い行を分けて改行しているだけ
一方で>>663の人は長い行にならないのに無意味に改行しまくり

676:デフォルトの名無しさん
21/11/25 10:28:27.93 rnpiht7q.net
>>674
return
gulp.src()
ならreturnの後にセミコロンが自動挿入されるけど
return gulp
.src()
ならgulpの後にセミコロンは自動挿入されないでしょ
それよりfunction ejs(){}って名前がダメなんじゃないの?
.pipe(ejs())で再帰になってる

677:デフォルトの名無しさん
21/11/25 10:36:21.11 QOEXsJ22.net
>>675
長さではなく、意味で切るんだよ。
>>676
> return gulp
> .src()
> ならgulpの後にセミコロンは自動挿入されないでしょ
されて gulp が返されるはずだぞ。

678:デフォルトの名無しさん
21/11/25 10:42:13.14 6PNOZvLH.net
>>677
意味で切るならgulpと.src()の間で改行を入れてるのは明らかにおかしい
無意味な改行だ

679:デフォルトの名無しさん
21/11/25 10:42:35.39 QOEXsJ22.net
>>676
すまん、674は間違い。
試してみたところ、確かに挿入されないようだ。

680:デフォルトの名無しさん
21/11/25 11:42:21.71 QOEXsJ22.net
>>678
相手するだけ無駄っぽいが、そういうのは物によるんだよ。
そうした方が見やすいと思う奴がそうするだけ。
return ウンコ製造器675号
.src(ケーキ)
.pipe(胃)
.pipe(小腸);
.pipe(大腸);
なら、675によってケーキがウンコに変わるのが見やすくなると思う奴もいるだろ。
(詳しくないが)gulpの場合は基本はフィルタで型が変わらないし、出発点はソースファイルに決まってるから、
return gulp.src(ソース)
.pipe(フィルタ1)
.pipe(フィルタ2)
のケースが多いとは思うけど。

ついでに言っておくと、お前JSによくいる、やたら文法に拘る奴なら、止めた方がいい。
それだと全く進歩しないので。
上記の通り、まあどちらもいるわな、程度で進めていかないと、上達しない。
どちらが正しいとか、そういう問題ではない。
どうにもJS初心者は「改行を極める」「セミコロンを極める」とかになりがちのようで、よろしくない。

681:デフォルトの名無しさん
21/11/25 12:57:12.37 K4FLN1Dn.net
んじゃ俺は括弧の後に半角スペースを入れるのを極めるわ。

682:デフォルトの名無しさん
21/11/25 13:45:45.44 R4fLO2Lj.net
必死過ぎて笑えるw

683:デフォルトの名無しさん
21/11/25 14:09:48.85 reZpBJt7.net
珍しく伸びてんなと思ったらこれだよ

684:デフォルトの名無しさん
21/11/25 19:42:13.27 b7JhAcnH.net
.NET Standard が世界の中心と考えてる人でしょ
別スレで見た

685:デフォルトの名無しさん
21/11/25 21:14:35.40 QOEXsJ22.net
>>681
ゆとりにはそれがお似合いだね

686:デフォルトの名無しさん
21/11/25 22:13:54.29 HW7nta/v.net
610です。
仕事でレス遅くなりました。
>>676
ありがとうございます!
このコメントからピンときて修正したら無事に動作しました。
超初歩的なミスでした、、
こちらの書き方は関数の中にejs(gulp-ejsオブジェクト)を書いても動作しましたが
gulp.task('ejs', function() {
}

こちらでは関数に同じ関数入れたらまだタスク終わってないよと、動作しませんよね。(気づけば当たり前なのですが、、)
function ejs() {
}
お騒がせしました。コメント頂いた方もありがとうございました!

687:デフォルトの名無しさん
21/11/25 22:25:35.12 HW7nta/v.net
誤 610です。 = > 正 660です。

688:デフォルトの名無しさん
21/11/25 23:27:35.30 nh0ZEMSE.net
漏れは、Ruby でも、パーサーの誤解釈を避けるため、
. を行末に置く
a.
b( ).
c( )

689:デフォルトの名無しさん
21/11/26 01:34:21.64 KdVwfKAT.net
なんで Ruby が出てきた

690:デフォルトの名無しさん
21/11/26 22:15:56.74 FIwAqG/H.net
スクリプト系は改行も終端になって駄目ね

691:デフォルトの名無しさん
21/11/26 23:57:17.12 MbvsChzk.net
>>690
JavaScriptで駄目なのはreturnのみの行の時だけだよ
return
a
.b()
は駄目だけどこう書く人はいないから問題は起きることはない
return a
.b()
なら大丈夫

692:デフォルトの名無しさん
21/11/27 09:09:57.67 kX7QbhiL.net
そういうのはコーディング時にいちいち気にするよりlinterでチェックだな。

693:デフォルトの名無しさん
21/11/27 09:24:44.31 LVgG7qhW.net
>>691
それを知ってないと嵌るだけの無駄仕様だよ。
セミコロンなしの筆頭だった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.
> URLリンク(github.com)
他にセミコロンなしの有名ルール勢ってあったっけ?
return
'qwerty'
+'asdfgh';
とは書きたくなるだろ。書きたいように書けないのはよろしくないよ。今風ではないね。
セミコロン書くルールならASIなんて無い方がマシだし。

694:デフォルトの名無しさん
21/11/27 09:32:19.66 MtgsfYs/.net
書き方にこだわりがあるならそうではない書き方と比べて◯◯の利点があると言わないと他人の理解は得られにくい。
好みだけの問題ならスクリプトの仕様に従うしかない。

695:デフォルトの名無しさん
21/11/27 09:36:27.04 TUbuKQsw.net
自分はなりませんねとしか

696:デフォルトの名無しさん
21/11/27 09:41:13.68 LVgG7qhW.net
>>684
俺向けではないと思うが、
return
'qwerty'
+'asdfgh';
の利点は見れば分かるとおり、インデントを揃えられる事だよ。
タグの方が分かりやすいかもしれんが一々引っかかると面倒なので止めただけ。
return '<div>'
+'<span>'+
+'</span>'+
+'</div>';
だと最初のdivのインデントがずれるだろ。
まあ言うほどではないし、実際俺はこの書き方をしているが、出来れば return の後に改行したいね。

697:デフォルトの名無しさん
21/11/27 09:42:13.87 LVgG7qhW.net
すまん693内681は>>694

698:デフォルトの名無しさん
21/11/27 10:25:26.66 wIEauZJC.net
お前ら何も考えずにPrettier使え
それが今のデファクトだ

699:デフォルトの名無しさん
21/11/27 11:22:05.56 xgA8vuBV.net
>>693
Airbnbがセミコロンなしの筆頭って頭腐りすぎたろ
git時代に歴史改ざんしてもすぐにバレる
2012年にセミコロンの章が初めて書かれたときからAirbnbはセミコロン派だ
URLリンク(github.com)

700:デフォルトの名無しさん
21/11/27 11:35:18.29 LVgG7qhW.net
>>699
ならAirbnbというのは俺の勘違いだな。
俺がJSを始めた2013-14頃、有名なコーディングルールが4つほどあって、Airbnbが一番トンデモだった(が、人気は一番という話だった)
その中にはセミコロンを打つな、というルールもあった。誰か思えてないかね?
なお俺はgoogleのルールが一番マシっぽいのでそれを参考にした。(こちらはセミコロンあり)

701:デフォルトの名無しさん
21/11/27 11:43:32.92 WAiK9igD.net
>>700
どこだか覚えてないけど、確かにどっかでセミコロン打たないで、短文を1行に書くときだけセミコロン使うてなの見たか聞いたりした記憶ある。

702:デフォルトの名無しさん
21/11/27 12:14:33.21 LVgG7qhW.net
一応自分でも再確認しているところだが、
> Always use semicolons. (google)
> Use them. Never rely on ASI. (jQuery)
> あなたからセミコロンを奪おうとする反抗的な軍隊があるようです。でも確かに私達の伝統的な文化はまだ元気に生き残っています。だからコミュニティに従って、セミコロンを使いなさい!(Node)
> URLリンク(qiita.com)
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()
> }
> URLリンク(www.w3resource.com)
となると俺の勘違いはnpmという事になるが、npm==Nodeじゃねえのか?という疑問は発生する。Nodeはnpmからのフォークか?
多分俺が当時見たのは Airbnb, npm, jQuery, googleだと思う。

703:デフォルトの名無しさん
21/11/27 12:30:57.21 i1Pzoh/C.net
NodeはRyan Dahlが始めてセミコロンあり
npmはIsaac Z. Schlueterが始めてセミコロンなし
IsaacはNodeの2代目リーダーだけどNodeではセミコロンを書いてた

704:デフォルトの名無しさん
21/11/27 12:54:15.05 XFyMXPdv.net
セミコロンレスの強硬派として有名なのはStandard
カスタマイズも許さない
URLリンク(github.com)

705:デフォルトの名無しさん
21/11/27 13:40:28.79 LVgG7qhW.net
>>704
初コミット2015年なのにstandardと主張して他と違うルールとか、頭おかしいな。
とはいえ議論する時間が一番無駄というのは同意だが。
多分セミコロン無し言語出身者用のルールが一つは必要で、
それに向けてのstandard命名なのだろうけど、なんだかね。

706:デフォルトの名無しさん
21/11/27 13:49:34.28 MtgsfYs/.net
文字列を「+」で繋げるのもうやめようよ。見にくいよ。
「´」(バッククォート)で括ればいいじゃん

707:デフォルトの名無しさん
21/11/27 13:51:01.70 NSUO7OXD.net
>>706
このルール入れろ
URLリンク(eslint.org)

708:デフォルトの名無しさん
21/11/28 09:28:43.85 yQx61O6E.net
javascriptならセミコロン無い方がいいかなぁ

709:デフォルトの名無しさん
21/12/14 18:36:52.92 R85W1UAs.net
async/awaitってawaitしかしないから無駄じゃね?

710:デフォルトの名無しさん
21/12/26 08:00:15.12 iIGCgNg3.net
Promise, async/await で無駄なのは、デタラメ解説の数々、ほぼ全滅だろ、酷い惨状だねー。

711:デフォルトの名無しさん
21/12/26 09:04:50.48 S+a9i6vw.net
それを言ったらWeb系言語は全部デタラメ解説で駄目だろ
初心者が情報公開の練習として解説を書くからそうなる

712:デフォルトの名無しさん
21/12/26 10:12:00.53 6ScHvZpk.net
それはしゃーない、正確さにこだわりすぎて萎縮する方がデメリットが大きい
読む方が気を付けて取捨選択するしかない

713:デフォルトの名無しさん
21/12/26 10:19:35.71 jog3O69G.net
c++とかjavaとか含めて進化してる技術の古い解説はことごとくゴミ化してるし一緒だわな

714:デフォルトの名無しさん
21/12/26 11:04:07.34 4h95DB/2.net
classは非推奨にして欲しい。
中途半端で使いにくい。

715:デフォルトの名無しさん
21/12/26 13:04:22.56 PmcDL+gd.net
>>714
どういう所?

716:デフォルトの名無しさん
21/12/26 13:40:10.35 S+a9i6vw.net
>>712
同意だが、C#はかなりマシ
一般的に上級者は初心者向けの説明なんて書きたくないものだが、
プログラミング自体について語りたい連中も多少はおり、そいつらを上手く取り込んでる

717:デフォルトの名無しさん
21/12/26 17:59:34.28 4h95DB/2.net
>>715
上っ面だけのクラスベース。
内容はプロトタイプのまま。

718:デフォルトの名無しさん
21/12/26 18:08:44.18 PnBrsUGe.net
上っ面といってもそこで整合とれていて内部の問題が表に現れないなら別に問題ないと思うが。
まぁ、中途半端というなら何かそういう部分が見えているということなんだろうが。

719:デフォルトの名無しさん
21/12/26 18:30:25.89 oeLmweY9.net
定期的に呟いてる人だから気にせんでいいよ

720:デフォルトの名無しさん
21/12/26 18:50:24.76 PmcDL+gd.net
>>717
オブジェクト指向的センスが無いと言う事だね
今の時代、両方出来ないとプロだと厳しいと思うがね

721:デフォルトの名無しさん
21/12/26 18:55:49.66 S+a9i6vw.net
プロトタイプの方が表現出来る空間が広くて、実際にただの糖衣構文でクラスを実装出来てるだけだろ
クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが
混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか)
class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか?

722:デフォルトの名無しさん
21/12/26 19:35:46.48 kUhTwtcg.net
GoやRustなんかの新しい言語がクラスベースのオブジェクト指向を採用しないご時世
時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな
TC39的にはES4で入れ損なったから悲願だったんだろうけど

723:デフォルトの名無しさん
21/12/26 20:25:20.58 M+F+5/6j.net
プロトタイプベースのオブジェクト指向ってIDEや静的型付けと相性悪いのでは

724:デフォルトの名無しさん
21/12/26 20:48:01.50 S+a9i6vw.net
>>723
仮にそうだとしても、IDEの都合を優先してプログラミング言語を簡素化するのは完全に本末転倒だろ
初心者専用のオモチャが欲しければScratchで満足しとけ

725:デフォルトの名無しさん
21/12/26 20:54:53.04 M+F+5/6j.net
>>724
既存との互換を保ったまま機能追加されてるわけだから言語自体は簡素化されたのてはなく複雑化されたのでは
それはさておき従来の機能が使えなくなるわけでもなく何が不満なのかわからない

726:デフォルトの名無しさん
21/12/26 21:02:39.16 4h95DB/2.net
>>721
してない。
だから細かい設定が解りづらい。

727:デフォルトの名無しさん
21/12/26 21:18:20.64 S+a9i6vw.net
>>725
糖衣構文を導入した分言語は複雑化してるし、IDEも余計に対応する必要がある。
IDEを優先するなら何もしないのが最善。
(もちろん仕様を削れるのが最善だが、JSの場合はこれはかなり無理なので)
>>726
仕様で確定してないのなら、混ぜて使う事は禁止だし、
クラスで閉じて使う分にはプロトタイプベースは見えないから問題ないだろ。
何を問題視してる?

728:デフォルトの名無しさん
21/12/26 21:26:19.15 PIvfFszt.net
>>726
ECMAScriptの仕様書も読んだことない低脳が堂々と嘘を書くなよ
ES2020の14.6.12

729:デフォルトの名無しさん
21/12/26 21:33:51.63 PIvfFszt.net
>>728
自己レス「ES2020の14.6.13」の書き間違い

730:デフォルトの名無しさん
21/12/26 22:43:28.35 M+F+5/6j.net
>>727
そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ
例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う
構文解析なんかは大して難しい話ではない

731:デフォルトの名無しさん
21/12/26 22:59:58.91 vgGpFQt6.net
実際にTypeScriptはinterface導入してるし何も問題ないだろ

732:デフォルトの名無しさん
21/12/26 23:27:54.98 S+a9i6vw.net
>>730
最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、
IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。
プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。
IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。
IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、
一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。
GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。
静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。
実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。
最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。
ちなみにTSが型を導入したのも、IDEを作るためではなく、
プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。
そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。
型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。

733:デフォルトの名無しさん
21/12/27 00:11:53.01 Btn3kp2t.net
>>732
言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても
静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが
実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが >>723 ではIDEや静的解析といっている

734:デフォルトの名無しさん
21/12/27 05:27:18.08 5b2Vj92V.net
>>733
> 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。
それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。
IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。
よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。
上下関係で言えばプログラミング言語の『仕様』が完全に上であって、
IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
> 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。
でも確かにこれが一番生産性が高いんだよ。
当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。
だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。
最大のメリットは構文解釈を自前で実装する必要がない事。
構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、
IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。
これで言語側の仕様変更に自動的に追従するようになる。
IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。
> 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。
しかも自前の実装もなしだから、最も生産性が高い。
自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、
それはIDEではなくリンターと呼ぶべきだが、
それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、
IDEはそのエラーを表示する事に徹するのが最も生産性が高い。
IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。

735:デフォルトの名無しさん
21/12/27 08:32:17.24 Btn3kp2t.net
>>734
> IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
なぜそうあるべきなのですか?
近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です
プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して
宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと

736:デフォルトの名無しさん
21/12/27 09:13:46.85 mFj7RPUl.net
今時プロトタイプベースがぁ、って言ってるのが時代遅れじゃねーの。
クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。

737:デフォルトの名無しさん
21/12/27 09:41:04.48 VqPkBZyA.net
>>736
>>722はクラスベースを時代遅れと書いたんだが
ぶっちゃけオブジェクト指向が過去のものになってきてるのみんな分かってるだろ


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

274日前に更新/211 KB
担当:undef