タグ

ブックマーク / teppeis.hatenablog.com (7)

  • thank-you-starsで利用しているnpmパッケージに気軽にスターを送る - teppeis blog

    先週、こういうツイートを見て、 OSSを使っているなら、GitHubのリポジトリにそっとスターをつけると開発者のキャリアにわりと直接的に貢献できるのでお薦めです。少額の寄付より効果があるかも— Taro L. Saito (@taroleo) 2017年8月15日 共感したのでサクッと作った。 github.com package.jsonと同じディレクトリで実行するだけで、depsとdevDepsのパッケージのGitHubリポジトリにスターできる。 事前にパーソナルトークンをホームディレクトリに保存しておく必要があるけど、その辺はREADMEを読んでくれ。 依存に入れて使っているということは、それなりに恩恵を受けているということなので、問答無用でスターを送ってしまって良いと思う。 孫依存のパッケージにも送るか迷ったけど、npm的にそこ含めると一気に数が膨れてしまうのでやめた。 これでみん

    thank-you-starsで利用しているnpmパッケージに気軽にスターを送る - teppeis blog
    amagitakayosi
    amagitakayosi 2017/08/22
    星祭だ
  • TypeScriptの宣言空間とその不満 - teppeis blog

    最近TypeScriptの型を触っていてハマったあたりのまとめ。だいたい仕様書に書いてあるとおりなので、すでに仕様書を読破している諸兄にはこの記事は必要ないです。 宣言空間 (declaration space) とは 宣言空間というのは、同一宣言空間で同じ名前が複数存在するとエラーになるような空間のこと。 TypeScriptには大きく分けて3つの宣言空間 (declaration space) がある *1。 変数 (for variables) またはメンバー (for members)*2*3 型 (for named types) 名前空間 (for namespaces) どういうことかというと、TypeScriptでは次のコードがエラーにならない。 var M = 0; // 変数宣言空間 interface M {} // 型宣言空間 module M {} // 名前空間

    TypeScriptの宣言空間とその不満 - teppeis blog
  • npm install scriptの脆弱性とオープンソースと信頼 - teppeis blog

    先日アナウンスされた脆弱性とその周辺について、とりとめなく。 The npm Blog — Package install scripts vulnerability Vulnerability Note VU#319816 脆弱性の概要 VU#319816 によれば、今回問題になっているのはnpmの以下の性質を利用するとnpmパッケージでワーム(自己増殖力のあるマルウェア)を作れるというもの。 依存パッケージのバージョンをロックせず、semverにより範囲指定することが多い CLIで一度npmloginすると、明示的にnpm logoutするまで認証が永続化される npm registry が中央集権型サーバーである 具体的な手法として、Chris Contoliniが PoC として pizza-party というリポジトリを公開している*1。以下のように動作する。 ワームが仕込まれ

    npm install scriptの脆弱性とオープンソースと信頼 - teppeis blog
    amagitakayosi
    amagitakayosi 2016/03/28
    CIでそのパッケージが安全かどうか、副作用があるかチェックして、README.mdにバッジ貼れるサービスあれば便利そう。
  • grunt-parallelize v1.1.0リリースおよび零細OSSの継続性について - teppeis blog

    2015/03/29 10:30 フォークについて末尾に追記 gruntタスクのファイルリストを分割して並列実行するgruntプラグイン、grunt-parallelizeを前に作った。 そこそこ使われてるっぽいのだけど、 ファイルリストが長大な場合にエラーになることがある ファイルリストにdestがあるタスクに対応していない という2点についてissueや問い合わせがよくあってどうしたもんかなと思いつつ放置していたところ、ちょうど良いプルリクをもらったので重い腰を上げて取り込みつつもろもろ修正してv1.1.0をリリースした。 さて、最近こんな記事を読んで、「プラグイン開発者として」あたりのところをまさに感じていた。 若気の至りで、おっさんも昔はよくGruntプラグインを作ったのです。実際に自分のプロジェクトでGruntを使い、必要だったので、プラグイン開発に対する情熱もあったわけですけど

    grunt-parallelize v1.1.0リリースおよび零細OSSの継続性について - teppeis blog
    amagitakayosi
    amagitakayosi 2015/05/30
    これ、今のnpmならscoped packageでforkっぽいことできそう
  • io.js用に書いたパッケージはnpmでどう扱うか問題 - teppeis blog

    東京Node学園 15時限目に参加したときにふと思った疑問について。 Node.jsと非互換なAPI使ったとき、npmにあげていいの?package.jsonのengineとかで書けるのか #tng15— teppeis (@teppeis) 2015, 2月 10 Node.jsの場合 例えばNode.js v0.12系にしか存在しないAPIを使ったパッケージの場合、package.jsonのenginesフィールドにこう書くことで、 { "engines" : { "node" : ">=0.12" } } 適合しないNode.js v0.10でnpm installしたときに警告を出すことができた。逆に削除されたAPIを使っている場合はバージョンの上限も指定できる。また非推奨ながらengineStrictフィールドを使うと警告ではなくエラーにできる。 io.jsでの議論は では、io

    io.js用に書いたパッケージはnpmでどう扱うか問題 - teppeis blog
    amagitakayosi
    amagitakayosi 2015/02/12
    とりあえずライブラリはnpmが対応するまでnodeで書くしかなさそう
  • TypeScriptで複数ファイル構成する2つの方法 - teppeis blog

    TypeScriptで複数ファイル構成のプロジェクトを扱う方法について書いてみる。日語の入門記事や試してみました系の記事で勘違いされてることがたまに見受けられるので、整理してみる。 公式のModules in TypeScriptを既に読んでおられるような御仁は回れ右していただいても結構です。 やりたいこと ソースファイルをモジュールごとに分割して管理したい 実行環境はNode.js or ブラウザ 例えば、こういう処理があって、 // main.ts function trimLeft(str: string): string { return str.replace(/^\s+/, ''); } var input = document.getElementsByTagName('input')[0]; input.value = trimLeft(input.value); tri

    TypeScriptで複数ファイル構成する2つの方法 - teppeis blog
  • typescript-simpleの高速化と最近のTypeScript Compiler API周辺動向 - teppeis blog

    ES6 compat tableのTypeScriptコードのビルド時間を300秒から2秒に短縮した話と、最近のCompiler APIの動きの紹介。 先日TypeScriptの文字列を簡単にコンパイルするtypescript-simpleというライブラリを書いた。 typescript-simpleを作った動機の1つは、ES6 compat tableのTypeScript用テストを高速化することだった。 元は300件以上あるテスト項目を、テストごとにNode.js v0.11のchild_process.execSyncでプロセスを立ち上げてTypeScriptコンパイラ (tsc) でチェックしていたので、全部テストするのに300秒ぐらいかかっていた。これをtypescript-simpleで全テストをワンプロセス内で実行したら超速化するはず!と思ったけど、300秒が200秒になるぐ

    typescript-simpleの高速化と最近のTypeScript Compiler API周辺動向 - teppeis blog
  • 1