Я создал проект, используя vue-cli (версия 3).Проект позволяет использовать псевдонимы @
в операторах import
для ссылки на каталог src
.Например:
src / components / ArticleList.vue
import articles from '@/articleIndex.ts';
Успешно импортирует src / articleIndex.ts .
Однако идентичное объявление в src / views / Article.vue не работает:
import articles from '@/articleIndex.ts';
Это приводит к ошибке "Оператор импорта не может заканчиваться на .ts. Рассмотрите возможность импорта@/articleIndex
вместо этого. "Итак, я попробовал это.
src / views / Article.vue
import articleList from '@/articleIndex';
Это вызывает ошибку "Не удается найти модуль:'@/articleIndex'.
ОбаarticleIndex
и articleIndex.ts
работают в src / components / ArticleList.vue .
Однако работает следующее:
src / views /Article.vue
import articles from '../articleIndex';
Почему один файл выбрасывает ошибки в операторе импорта при использовании @
, а не другой ?
Ниже приведеноmy package.json
. Здесь vue-cli хранит все параметры конфигурации.
package.json
{
"name": "blog",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
},
"dependencies": {
"register-service-worker": "^1.5.2",
"showdown": "^1.9.0",
"vue": "^2.5.17",
"vue-class-component": "^6.0.0",
"vue-property-decorator": "^7.0.0",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
},
"devDependencies": {
"@types/jest": "^23.1.4",
"@vue/cli-plugin-babel": "^3.0.5",
"@vue/cli-plugin-pwa": "^3.0.5",
"@vue/cli-plugin-typescript": "^3.0.5",
"@vue/cli-plugin-unit-jest": "^3.0.5",
"@vue/cli-service": "^3.0.5",
"@vue/test-utils": "^1.0.0-beta.20",
"babel-core": "7.0.0-bridge.0",
"ts-jest": "^23.0.0",
"typescript": "^3.0.0",
"vue-template-compiler": "^2.5.17"
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
],
"jest": {
"moduleFileExtensions": [
"js",
"jsx",
"json",
"vue",
"ts",
"tsx"
],
"transform": {
"^.+\\.vue$": "vue-jest",
".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
"^.+\\.tsx?$": "ts-jest"
},
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"snapshotSerializers": [
"jest-serializer-vue"
],
"testMatch": [
"**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"
],
"testURL": "http://localhost/"
}
}