Denoのパッケージマネージャは本当に必要ですか?
7823 ワード
私が2019年にDenoについて聞いたとき、私は考えました.
Ryanが説明しているように、内部アーキテクチャに問題がある
DENOについての非常に一般的な質問は、パッケージマネージャーですか?ライアンは彼の講義でNPMとNodeJSの問題を説明し、それを修正しようとすると、もはや実行可能ではないので、Denoはパッケージマネージャを使用する必要がなく、いくつかの開発者のためのパラダイムを変更することは交渉していないこれらの問題を解決することを意図しています.
パッケージを扱うためのURLの使用は他のプログラミング言語で使用されますGoのように、ハードな部分は、30のファイルでURLを扱う必要があります.一つの解決策は、すべてのモジュールがこのようにインポートされるファイルを持つことです.
Trexだけでインポートマップを作成します.すべての依存関係がリストされているJSONファイル.
ノードJS :
カスタムモジュールをどこからでも使用することもできます.
Ryanが説明しているように、内部アーキテクチャに問題がある
DENOについての非常に一般的な質問は、パッケージマネージャーですか?ライアンは彼の講義でNPMとNodeJSの問題を説明し、それを修正しようとすると、もはや実行可能ではないので、Denoはパッケージマネージャを使用する必要がなく、いくつかの開発者のためのパラダイムを変更することは交渉していないこれらの問題を解決することを意図しています.
パッケージを扱うためのURLの使用は他のプログラミング言語で使用されますGoのように、ハードな部分は、30のファイルでURLを扱う必要があります.一つの解決策は、すべてのモジュールがこのようにインポートされるファイルを持つことです.
// deps.ts
export { equal } from "https://deno.land/[email protected]/bytes/mod.ts";
export { Sha1 } from "https://deno.land/[email protected]/hash/sha1.ts";
export { HmacSha256 } from "https://deno.land/[email protected]/hash/sha256.ts";
export {
serve,
serveTLS,
} from "https://deno.land/[email protected]/http/server.ts";
export {
Status,
STATUS_TEXT,
} from "https://deno.land/[email protected]/http/http_status.ts";
export { BufReader, BufWriter } from "https://deno.land/[email protected]/io/bufio.ts";
export { copyBytes } from "https://deno.land/[email protected]/io/util.ts";
export {
basename,
extname,
join,
isAbsolute,
normalize,
parse,
resolve,
sep,
} from "https://deno.land/[email protected]/path/mod.ts";
export { assert } from "https://deno.land/[email protected]/testing/asserts.ts";
export {
acceptable,
acceptWebSocket,
WebSocket,
} from "https://deno.land/[email protected]/ws/mod.ts";
// 3rd party dependencies
export {
contentType,
extension,
lookup,
} from "https://deno.land/x/[email protected]/mod.ts";
export {
compile,
Key,
parse as pathParse,
ParseOptions,
pathToRegexp,
TokensToRegexpOptions,
} from "https://raw.githubusercontent.com/pillarjs/path-to-regexp/v6.1.0/src/index.ts";
もう一つの方法はimport map denoが既に実装しているウェブに対する提案は、今のところ不安定な機能です.// import_map.json
{
"imports": {
"fmt/": "https://deno.land/[email protected]/fmt/"
}
}
これははるかに伝統的な方法でインポートすることができますimport { red } from "fmt/colors.ts";
console.log(red("hello world"));
しかし、NPMのようなモジュールを処理する方法を持つことができますが、NPMが持っている問題をドラッグしないでください.Trex 私が開発しているプロジェクトは、双方のベストを実装しようとするプロジェクトですが、CLIを使用してモジュールをインストールする方法を組み合わせていますが、すべてのキャッシュされているので、NodeRoundモジュールフォルダーなしで、非常に簡単な方法でVeloCiraptorとデンオンのようなツールをインストールする機能です.Trexだけでインポートマップを作成します.すべての依存関係がリストされているJSONファイル.
ノードJS :
$ npm install lowdash
デコのトレックス$ trex install --map oak
すべてのモジュールはdenoウェブサイトから抽出されるので、標準的なライブラリにあるどんなモジュールもdeno.land/x
Trexでインストールできます.カスタムモジュールをどこからでも使用することもできます.
$ trex --custom React=https://unpkg.com/react-dom@16/umd/react-dom.development.js
同様にインポートマップとキャッシュに追加されます.Reference
この問題について(Denoのパッケージマネージャは本当に必要ですか?), 我々は、より多くの情報をここで見つけました https://dev.to/buttercubz/do-we-really-need-a-package-manager-for-deno-3m26テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol