nuxtプロジェクトでサブディレクトリにtsconfig.jsを配置した時のimportエラーを解消する
動作環境
エディタ:VScode
nuxt.js2系 + typescript
現象
プロジェクトのサブディレクトリにnuxtアプリケーションを作成。
コンポーネントをimportで読み込もうとするとエラーになる。
<script lang="ts">
import ButtonMedium from '@/components/ui/ButtonMedium.vue';
export default {
//
};
エラー内容
Cannot find module '@/components/ui/ButtonMedium.vue' or its corresponding type declarations.Vetur(2307)
原因
VScodeのVeturが原因でした。
デフォルトの設定では、tsconfig.jsがルートディレクトリに存在していないと、Veturがtsconfig.jsを読み込むことができず、パス解決ができません。
解決方法
vetur.config.jsでrootの設定を変更してあげればOKでした。
nuxtプロジェクトのディレクトリ構成
nuxtProject
├── application //nuxtアプリケーション
├── docker
├── docker-compose.yml
└── vetur.config.js
vetur.config.jsの設定
/** @type {import('vls').VeturConfig} */
module.exports = {
// **optional** default: `{}`
// override vscode settings
// Notice: It only affects the settings used by Vetur.
settings: {
"vetur.useWorkspaceDependencies": true,
"vetur.experimental.templateInterpolationService": true
},
// **optional** default: `[{ root: './' }]`
// support monorepos
projects: [
{
// **required**
// Where is your project?
// It is relative to `vetur.config.js`.
root: './application/', //ここをnuxtアプリケーションのルートを指定
// **optional** default: `'package.json'`
// Where is `package.json` in the project?
// We use it to determine the version of vue.
// It is relative to root property.
package: './package.json',
// **optional**
// Where is TypeScript config file in the project?
// It is relative to root property.
tsconfig: './tsconfig.json',
// **optional** default: `'./.vscode/vetur/snippets'`
// Where is vetur custom snippets folders?
snippetFolder: './.vscode/vetur/snippets',
// **optional** default: `[]`
// Register globally Vue component glob.
// If you set it, you can get completion by that components.
// It is relative to root property.
// Notice: It won't actually do it. You need to use `require.context` or `Vue.component`
globalComponents: [
]
}
]
}
以上。
参考
https://zukucode.com/2021/02/vscode-vetur-subdirectory.html
Author And Source
この問題について(nuxtプロジェクトでサブディレクトリにtsconfig.jsを配置した時のimportエラーを解消する), 我々は、より多くの情報をここで見つけました https://qiita.com/yu_jin/items/2886de73ba3d57794611著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .