回答:
モジュール識別子の意味と構造は、モジュールローダーまたはモジュールバンドルに依存します。モジュールローダーはECMAScript仕様の一部ではありません。JavaScript言語の観点からは、モジュール識別子は完全に不透明です。そのため、実際に使用しているモジュールローダー/バンドラーによって異なります。
ほとんどの場合、webpack / babel構成にbabel-plugin-root-importのようなものがあります。
基本的には、プロジェクトのルートからという意味です。以下のようなものを書く必要がありません。import Component from '../../../../components/component'
編集:それが存在import Component from 'components/component'しない理由の1つは、それを行わずにnode_modulesフォルダを検索するためです
それが古いことを知っていますが、それがどのように定義されているのか正確にはわかりませんでしたので、調べて来て、少し深く掘り下げて、最終的にこれをVue-CLI(Vue.js)で生成されたWebpack構成で見つけました
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': path.join(__dirname, '..', dir)
}
},
したがって、この場合はプロジェクトのvue-cliで生成されたsrcディレクトリのルートを指すエイリアスです。
'@*': ['client/src/*']の部分だけが取られているので、できるようになり、正しくアクセスしようとしますか?TS + VSCodeは、tsconfig.jsonのこの正確な形式ですでにそれを許可していますが、でwebpackエラーが発生します。私がそれをソリューションに変更すると、そのインポートパスがすぐに機能し始めるので、それ以外の場合はパスが正しくなります。 @import X from '@components/xclient/src/components/xCan't resolve '@components/x' in 'client/src/'import X from '@/components/x'
ようにするにはベンの答えは、より包括的な:
まず、あなたが追加する必要がありbabel-plugin-root-import、あなたの中devDependenciesでpackage.json(使用している場合yarn:yarn add babel-plugin-root-import --dev)。次に.babelrc、次の行をpluginsキーに追加します。
"plugins": [
[
"babel-plugin-root-import",
{
"rootPathPrefix": "@"
}
]
]
これで、を使用できます@。例えば:
の代わりに
import xx from '../../utils/somefile'
あなたはできる
import xx from '@/utils/somefile'
上記のように、この機能はデフォルトではJSにありません。それを楽しむには、babelプラグインを使用する必要があります。そして、その仕事は簡単です。JSファイルのデフォルトのルートソースを指定でき、ファイルのインポートをそれにマッピングするのに役立ちます。いずれかのnpmからインストールを開始するには:
npm install babel-plugin-root-import --save-dev
または
yarn add babel-plugin-root-import --dev
.babelrcアプリのルートにを作成し、好みに合わせてこれらの設定を構成します。
{
"plugins": [
["babel-plugin-root-import", {
"rootPathSuffix": "the-preferred/root/of-all-your/js/files",
"rootPathPrefix": "@"
}]
]
}
上記の設定を使用すると、次のようにそのソースから簡単にインポートできます。
import Myfile from "@/Myfile"
このすべてのファンキーなことをせずに:
"/../../../Myfile"
シンボルが"~"ボートに浮かぶようなものに変更することもできます。
VSアプリを使用して、ネイティブアプリの反応をビルドしています。
必要なものは:
jsconfig.jsonに、次のコードを追加します。
{"compilerOptions":{"baseUrl": "。"、 "target": "ES6"、 "module": "commonjs"、 "paths":{"@ / ":["src / "]、 "@components / ":[" src / components / "]、" @ core / ":[" src / core / "]}}、" exclude ":[" node_modules "]}
基本的に「ショートカット」のように:["abs_path"]