package.jsonのチルダ(〜)とキャレット(^)の違いは何ですか?

3680
Fizer Khan 2014-03-12 20:02.

私は、最新の安定にアップグレードした後nodenpm、私が試してみましたnpm install moment --savepackage.jsonキャレット^プレフィックスを付けてエントリをに保存します。以前は、チルダ~プレフィックスでした。

  1. なぜこれらの変更が行われるのnpmですか?
  2. チルダ~とキャレットの違いは何^ですか?
  3. 他のものに対する利点は何ですか?

19 answers

4167
jgillich 2014-03-12 22:28.

NPMドキュメントsemverドキュメントを参照してください:

  • ~version 「バージョンとほぼ同等」は、マイナーバージョンをインクリメントすることなく、将来のすべてのパッチバージョンに更新します。~1.2.31.2.3から<1.3.0までのリリースを使用します。

  • ^version 「バージョンと互換性がありますは、メジャーバージョンをインクリメントすることなく、将来のすべてのマイナー/パッチバージョンに更新します。^2.3.42.3.4から<3.0.0までのリリースを使用します。

例外については、特にpackage.jsonのチルダ(〜)とキャレット(^)の違いは何ですか?、以下のコメントを参照してください。package.jsonのチルダ(〜)とキャレット(^)の違いは何ですか?

923
Ahmad 2014-09-16 20:25.

質問で言及されているものを含む、バージョン固有のすべての方法を説明している公式のnpmjsドキュメントも追加したいと思います-

https://docs.npmjs.com/files/package.json

https://docs.npmjs.com/misc/semver#x-ranges-12x-1x-12-

  • ~version「バージョンとほぼ同等」npmsemver- Tilde Rangessemver(7)を参照してください
  • ^version「バージョンと互換性があります」npmsemver- Caret Rangessemver(7)を参照してください
  • version バージョンと完全に一致する必要があります
  • >version バージョンより大きくする必要があります
  • >=version
  • <version
  • <=version
  • 1.2.x 1.2.0、1.2.1など。ただし1.3.0ではありません。
  • http://sometarballurl (これは、ローカルにダウンロードおよびインストールされるtarballのURLである可能性があります
  • * どのバージョンにも一致します
  • latest 最新リリースを取得

上記のリストは網羅的なものではありません。他のバージョン指定子には、GitHub URLとGitHubユーザーリポジトリ、ローカルパス、特定のnpmタグ付きのパッケージが含まれます

704
pspi 2015-07-31 10:40.

npmを使用すると、指定したバージョンよりも新しいバージョンのパッケージをインストールできます。チルダ(~)を使用すると、バグ修正リリースが提供され、キャレット(^)を使用すると、下位互換性のある新機能も提供されます。

問題は、古いバージョンは通常、バグ修正をそれほど受け取らないため、npmはの^デフォルトとしてキャレット()を使用することです--save

によると:「Semverは説明しました-なぜ私のpackage.jsonにキャレット(^)があるのですか?」

ルールは1.0.0より前のバージョンに適用され、すべてのプロジェクトがセマンティックバージョニングに従うわけではないことに注意してください。バージョン0.xxの場合、キャレットはパッチの更新のみを許可します。つまり、チルダと同じように動作します。「キャレット範囲」を参照してください

概念の視覚的な説明は次のとおりです。

出典:「セマンティックバージョニングに関するチートシート」

118
rofrol 2015-10-12 06:52.

Semver

<major>.<minor>.<patch>-beta.<beta> == 1.2.3-beta.2
  • テストにはnpmsemver計算機を使用します。^(同じメジャー範囲の特定のバージョンより大きいすべてを含む)および〜(同じマイナー範囲の特定のバージョンより大きいすべてを含む)の説明は100%正しくありませんが、計算機は正常に機能しているようです。
  • または、代わりにSemVer Checkを使用します。これにより、パッケージを選択する必要がなく、説明も表示されます。

変更を許可または禁止する

  • ピンバージョン:1.2.3
  • ^(頭のように)使用します。左から2番目のゼロ以外のレベルでの更新を許可します:^0.2.3はを意味し0.2.3 <= v < 0.3ます。
  • ~(尻尾のように)使用します。通常、右端のレベルをフリーズするか、省略した場合はゼロに設定します。
  • ~1 手段 1.0.0 <= v < 2.0.0
  • ~1.2を意味し1.2.0 <= v < 1.3.0ます。
  • ~1.2.4を意味し1.2.4 <= v < 1.3.0ます。
  • 右端のレベルを省略:を0.2意味し0.2 <= v < 1ます。次の~理由とは異なります。
    • 省略されたレベルバージョンの開始は常に 0
    • サブレベルを指定せずに、開始メジャーバージョンを設定できます。

すべての(うまくいけば)可能性

開始メジャーレベルを設定し、上方への更新を許可します

*  or "(empty string)   any version
1                         v >= 1

メジャーレベルのフリーズ

~0 (0)            0.0 <= v < 1
0.2               0.2 <= v < 1          // Can't do that with ^ or ~ 
~1 (1, ^1)        1 <= v < 2
^1.2              1.2 <= v < 2
^1.2.3            1.2.3 <= v < 2
^1.2.3-beta.4     1.2.3-beta.4 <= v < 2

マイナーレベルをフリーズする

^0.0 (0.0)        0 <= v < 0.1
~0.2              0.2 <= v < 0.3
~1.2              1.2 <= v < 1.3
~0.2.3 (^0.2.3)   0.2.3 <= v < 0.3
~1.2.3            1.2.3 <= v < 1.3

パッチレベルのフリーズ

~1.2.3-beta.4     1.2.3-beta.4 <= v < 1.2.4 (only beta or pr allowed)
^0.0.3-beta       0.0.3-beta.0 <= v < 0.0.4 or 0.0.3-pr.0 <= v < 0.0.4 (only beta or pr allowed)
^0.0.3-beta.4     0.0.3-beta.4 <= v < 0.0.4 or 0.0.3-pr.4 <= v < 0.0.4 (only beta or pr allowed)

更新を禁止する

1.2.3             1.2.3
^0.0.3 (0.0.3)    0.0.3

注意:メジャー、マイナー、パッチの欠落、またはbeta番号なしの指定anyは、欠落しているレベルの場合と同じです。

注意0メジャーレベルのパッケージをインストールすると、アップデートでは新しいベータ/ PRレベルのバージョンのみがインストールされます。これnpm^、のデフォルトとして設定されpackage.json、インストールされたバージョンがのようになると0.1.3、すべてのメジャー/マイナー/パッチレベルがフリーズするためです。

96
alex 2014-03-13 13:05.

~メジャー番号とマイナー番号を修正します。これは、依存関係のバグ修正を受け入れる準備ができているが、互換性のない可能性のある変更を望まない場合に使用されます。

^メジャー番号のみを修正します。これは、依存関係を注意深く監視していて、マイナーリリースに互換性がない場合にコードをすばやく変更する準備ができている場合に使用されます。

それに加えて、^されたgrunt-phonegapをインストールします-エラー:互換性のあるバージョンが見つかりません:URIjs @ '^ 1.12.0'古いNPMのバージョンによって、注意して使用する必要があります。

したがって、これ^は適切なデフォルトですが、完全ではありません。自分にとって最も役立つsemver演算子を慎重に選択して構成することをお勧めします。

59
haotang 2014-06-28 06:12.

~:合理的に近い

   ~1.1.5: 1.1.0 <= accepted < 1.2.0

^:と互換性があります

   ^1.1.5: 1.1.5 <= accepted < 2.0.0

   ^0.1.3: 0.1.3 <= accepted < 0.2.0

   ^0.0.4: 0.0.4 <= accepted < 0.1.0
33
Will Stern 2014-12-16 08:07.

^は1です。[any]。[any](最新のマイナーバージョン)
~は1.2です。[any](最新のパッチ)

semverがnpmにどのように適用され、semver標準 に一致させるために何をしているのかについてのこのブログ投稿は素晴らしい読み物ですhttp://blog.npmjs.org/post/98131109725/npm-2-0-0

30
Laxmi 2016-10-01 00:56.

〜チルダ:

  • ~メジャー番号とマイナー番号をフリーズします。
  • これは、依存関係のバグ修正を受け入れる準備ができているが、互換性のない可能性のある変更を望まない場合に使用されます。
  • チルダは最新のマイナーバージョン(中央の番号)と一致します。
  • 〜1.2.3はすべての1.2.xバージョンに一致しますが、1.3.0を見逃します。
  • チルダ(〜)はバグ修正リリースを提供します

^キャレット:

  • ^ メジャー番号のみをフリーズします。
  • これは、依存関係を注意深く監視していて、マイナーリリースに互換性がない場合にコードをすばやく変更する準備ができている場合に使用されます。
  • 最新のメジャーバージョン(最初の番号)に更新されます。
  • ^ 1.2.3は、1.3.0を含むすべての1.xxリリースと一致しますが、2.0.0では保留されます。
  • キャレット(^)は、下位互換性のある新機能も提供します。
29
catamphetamine 2015-10-20 01:24.

ハットマッチングはに更新さ^0.1.2れないため、「壊れている」と見なされる場合があります0.2.0。ソフトウェアが登場しているときは、0.x.yバージョンを使用し、ハットマッチングは最後の変化する数字(y)にのみ一致します。これは意図的に行われます。その理由は、ソフトウェアが進化している間、APIが急速に変化するためです。ある日はこれらのメソッドがあり、別の日はそれらのメソッドがあり、古いメソッドはなくなります。すでにライブラリを使用しているユーザーのコードを壊したくない場合は、メジャーバージョンをインクリメントします(例:1.0.0-> 2.0.0->)3.0.0。したがって、ソフトウェアが最終的に100%完成し、フル機能を備えた時点では、バージョンのように11.0.0なり、あまり意味がなく、実際には混乱しているように見えます。一方、0.1.x-> 0.2.x->0.3.xバージョンを使用していた場合、ソフトウェアが最終的に100%完成し、フル機能を備えた時点で、バージョンとしてリリースされ1.0.0ます。これは、「このリリースは長期的なサービスです。このバージョンのライブラリを本番コードで続行して使用できます。作成者は明日または来月にすべてを変更することはなく、パッケージを放棄することもありません。」

ルールは次のとおりです。0.x.yソフトウェアがまだ成熟していない場合はバージョニングを使用し、パブリックAPIが変更されたときに中央の桁をインクリメントしてリリースします(したがって、更新を^0.1.0取得0.2.0せず、コードを壊すことはありません)。次に、ソフトウェアが成熟したら、その下でリリースし1.0.0、パブリックAPIが変更されるたびに左端の桁をインクリメントします(したがって、更新を^1.0.0取得2.0.0せず、コードを壊すことはありません)。

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
19
Mudassir 2019-01-18 00:32.

Tilde〜はマイナーバージョンと一致します。1.4.2のパッケージをインストールした場合、インストール後、package.jsonで〜1.4.2として使用され、npm installとして使用されている場合は、バージョン1.4.3および1.4.4も使用できます。アップグレード後のプロジェクトでは、プロジェクトに1.4.4がインストールされます。ただし、そのパッケージで使用できる1.5.0がある場合、〜によってインストールされません。マイナーバージョンと呼ばれます。

キャレット^はメジャーバージョンと一致します。1.4.2パッケージがプロジェクトにインストールされていて、インストール1.5.0がリリースされた後、^はメジャーバージョンをインストールします。^ 1.4.2がある場合、2.1.0をインストールすることはできません。

インストールごとにパッケージのバージョンを変更したくない場合は修正バージョンを使用し、「1.4.2」などの特殊文字を含まない固定バージョンを使用しました

最新バージョン*最新バージョンをインストールする場合は、パッケージ名の前に*のみを使用してください。

16
Avinash 2017-01-21 22:00.

1つのライナーの説明

標準のバージョン管理システムはmajor.minor.build(例:2.4.1)です。

npmは、これらの文字に基づいて特定のパッケージのバージョンをチェックして修正します

:メジャーバージョンが修正され、マイナーバージョンが修正され、任意のビルド番号に一致します

例:〜2.4.1は、xが何でもある2.4.xをチェックすることを意味します

^:メジャーバージョンは修正され、マイナーバージョンと一致し、ビルド番号と一致します

例:^ 2.4.1は、xが何でもある2.xxをチェックすることを意味します

12
Abdou Sameh 2017-11-27 09:12.

package.jsonでチルダ(〜)とキャレット(^)を見たことがあるでしょう。それらの違いは何ですか?

npm install moment --saveを実行すると、エントリがpackage.jsonにキャレット(^)プレフィックスを付けて保存されます。

チルダ(〜)

簡単に言うと、チルダ(〜)は最新のマイナーバージョン(中央の数字)と一致します。〜1.2.3はすべての1.2.xバージョンに一致しますが、1.3.0を見逃します。

キャレット(^)

一方、キャレット(^)はよりリラックスしています。最新のメジャーバージョン(最初の番号)に更新されます。^ 1.2.3は、1.3.0を含むすべての1.xxリリースと一致しますが、2.0.0では保留されます。

参照:https//medium.com/@Hardy2151/caret-and-tilde-in-package-json-57f1cbbe347b

5
ireshika piyumalie 2019-11-27 22:52.

semverは、ドットで区切られた3つの主要なセクションに分かれています。

major.minor.patch
1.0.0

これらの異なるメジャー、マイナー、およびパッチは、異なるリリースを識別するために使用されています。tide(〜)とcaret(^)は、パッケージのバージョン管理で使用するマイナーバージョンとパッチバージョンを識別するために使用しています。

~1.0.1
 Install 1.0.1 or **latest patch versions** such as 1.0.2 ,1.0.5
^1.0.1
 Install 1.0.1 or **latest patch and minor versions** such as 1.0.2 ,1.1.0 ,1.1.1
4
Farhan Yaseen 2018-03-10 02:21.

チルダ(〜)

メジャーバージョンが修正され、マイナーバージョンが修正され、任意のビルド番号に一致します

"express": "~4.13.3" 

~4.13.3 これは、4.13.xをチェックすることを意味します。ここで、xは何でも、4.14.0です。

キャレット(^)

メジャーバージョンは修正され、マイナーバージョンと一致し、ビルド番号と一致します

"supertest": "^3.0.0"

^3.0.0 xが何でもある3.xxをチェックすることを意味します

2
Rajashekhar Reddy 2018-09-28 20:58.

バージョン番号は、各セクションを異なる意味で指定する構文です。構文は、ドットで区切られた3つのセクションに分かれています。

major.minor.patch 1.0.2

メジャー、マイナー、およびパッチは、パッケージのさまざまなリリースを表します。

npmは、チルダ(〜)とキャレット(^)を使用して、それぞれ使用するパッチバージョンとマイナーバージョンを指定します。

したがって、〜1.0.2が表示された場合は、バージョン1.0.2または1.0.4などの最新のパッチバージョンをインストールすることを意味します。^ 1.0.2が表示されている場合は、バージョン1.0.2、または1.1.0などの最新のマイナーバージョンまたはパッチバージョンをインストールすることを意味します。

2
ElasticCode 2019-07-02 01:43.

カラットに ^は、同じ主要範囲の特定のバージョンよりも大きいすべてのものが含まれます。

チルダに ~は、同じマイナー範囲内の特定のバージョンよりも大きいすべてのものが含まれます。

たとえば、1.0.4までの許容可能なバージョン範囲を指定するには、次の構文を使用します。

  • パッチリリース:1.0または1.0.xまたは〜1.0.4
  • マイナーリリース:1または1.xまたは^ 1.0.4
  • メジャーリリース:*またはx

セマンティックバージョニング構文の詳細については、npmsemver計算機を参照してください。

npmドキュメントの詳細セマンティックバージョニングについて

1
Jesse Chisholm 2019-03-21 12:13.

それ自体は答えではありませんが、見落とされているように見える観察です。

カラット範囲の説明:

参照:https//github.com/npm/node-semver#caret-ranges-123-025-004

[メジャー、マイナー、パッチ]タプルの左端のゼロ以外の数字を変更しない変更を許可します。

^10.2.3一致する手段10.2.3 <= v < 20.0.0

それが彼らの意図したことではないと思います。バージョン11.xxから19.xxをプルすると、コードが破損します。

私は彼らが意味したと思いますleft most non-zero number field。SemVerには、数値フィールドが1桁である必要があるものはありません。

1
milan.latinovic 2020-02-19 04:36.

この質問に関連して、バージョンに関するComposerのドキュメントを確認できますが、ここでは簡単に説明します

  • チルダバージョン範囲()-〜1.2.3は> = 1.2.3 < 1.3.0と同等です
  • キャレットバージョン範囲(^)-〜1.2.3は> = 1.2.3 < 2.0.0と同等です

したがって、チルダを使用すると、パッチの自動更新を取得できますが、マイナーバージョンとメジャーバージョンは更新されません。ただし、キャレットを使用すると、パッチとマイナーバージョンを取得できますが、メジャー(重大な変更)バージョンは取得できません。

チルダバージョンは「より安全な」アプローチと見なされますが、信頼できる依存関係(適切に管理されたライブラリ)を使用している場合は、キャレットバージョンに問題はありません(小さな変更が変更を壊してはならないため)。

ComposerアップデートとComposerインストールの違いは何ですか?確認する必要があります。

0
user2849063 2018-05-05 01:02.

〜マイナーバージョンリリースへの仕様^メジャーバージョンリリースへの指定

たとえば、パッケージバージョンが4.5.2の場合、アップデート時に〜4.5.2は最新の4.5.xバージョン(マイナーバージョン)をインストールします^ 4.5.2は最新の4.xxバージョン(メジャーバージョン)をインストールします

Related questions

MORE COOL STUFF

「水曜日」シーズン1の中心には大きなミステリーがあります

「水曜日」シーズン1の中心には大きなミステリーがあります

Netflixの「水曜日」は、典型的な10代のドラマ以上のものであり、実際、シーズン1にはその中心に大きなミステリーがあります.

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ケイト・ミドルトンは、州の夕食会と州の訪問中にカミラ・パーカー・ボウルズからスポットライトを奪いたくなかった、と専門家は言う.

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンが、オリビア・ワイルドが彼女とハリー・スタイルズとの間の「難しい」が「非常に友好的」な分割を恒久的にすることを望んでいる理由を見つけてください.

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする&nbsp;

エリザベス女王の死後、ケイト・ミドルトンが舞台裏で「非常に困難な時期」を過ごしていたと伝えられている理由を調べてください.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

パンデミックは終わったかもしれないが、Covid-19 は終わっていない

パンデミックは終わったかもしれないが、Covid-19 は終わっていない

2021 年 6 月 8 日にニューヨーク市で開催された covid-19 パンデミックで亡くなった人々の命を偲び、祝うために、ネーミング ザ ロスト メモリアルズが主催するイベントと行進の最中に、グリーンウッド墓地の正門から記念碑がぶら下がっています。週末、ジョー・バイデン大統領は、covid-19 パンデミックの終息を宣言しました。これは、過去 2 年以上にわたり、公の場でそうするための長い列の中で最新のものです。

デビル・イン・オハイオの予告編は、エミリー・デシャネルもオハイオにいることを明らかにしています

デビル・イン・オハイオの予告編は、エミリー・デシャネルもオハイオにいることを明らかにしています

オハイオ州のエミリー・デシャネル みんな早く来て、ボーンズが帰ってきた!まあ、ショーボーンズではなく、彼女を演じた俳優. エミリー・デシャネルに最後に会ってからしばらく経ちました.Emily Deschanel は、長期にわたるプロシージャルな Bones の Temperance “Bones” Brennan としてよく知られています。

ドナルド・トランプはFBIのマー・ア・ラーゴ襲撃映像をリリースする予定ですか?

ドナルド・トランプはFBIのマー・ア・ラーゴ襲撃映像をリリースする予定ですか?

どうやら、ドナルド・トランプに近い人々は、今月初めにFBIによって家宅捜索された彼のMar-a-Lago財産からの映像を公開するよう彼に勧めています. 前大統領はテープを公開するかどうかを確認していませんが、息子はフォックス・ニュースにそうなるだろうと語った.

Andor は、他の Star Wars ショーから大きな距離を置きます。

Andor は、他の Star Wars ショーから大きな距離を置きます。

アンドールの一場面。数十年前、ジョージ・ルーカスがスター・ウォーズのテレビ番組を制作するのを妨げた主な理由は、お金でした。

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、子供向けのパズルの本の序文を書き、ジョージ王子、シャーロット王女、ルイ王子と一緒にテキストを読むと述べた.

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

Yak's Produce は、数十個のつぶれたメロンを野生動物のリハビリ専門家であるレスリー グリーンと彼女のルイジアナ州の救助施設で暮らす 42 匹の動物に寄付しました。

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

8 枚目のスタジオ アルバムのリリースに向けて準備を進めているデミ ロヴァートは、「スーパー グレート ガイ」と付き合っている、と情報筋は PEOPLE に確認しています。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

ホームオフィスのセットアップ術を極めよう!AppExert の開発者は、家族全員が一緒にいる場合でも、在宅勤務の技術を習得しています。祖父や曽祖父が共同家族で暮らしていた頃の記憶がよみがえりました。

2022 年、私たちのデジタル ライフはどこで終わり、「リアル ライフ」はどこから始まるのでしょうか?

20 年前のタイムトラベラーでさえ、日常生活におけるデジタルおよびインターネットベースのサービスの重要性に驚くことでしょう。MySpace、eBay、Napster などのプラットフォームは、高速化に焦点を合わせた世界がどのようなものになるかを示してくれました。

ニューロマーケティングの秘密科学

ニューロマーケティングの秘密科学

マーケティング担当者が人間の欲望を操作するために使用する、最先端の (気味が悪いと言う人もいます) メソッドを探ります。カートをいっぱいにして 3 桁の領収書を持って店を出る前に、ほんの数点の商品を買いに行ったことはありませんか? あなたは一人じゃない。

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

私たちが住んでいる世界を確実に理解するには、データが必要です。ただし、空間参照がない場合、このデータは地理的コンテキストがないと役に立たなくなる可能性があります。

Language