Синтаксис "@ / filename" работает в одной папке, но не в другой, в проекте vue-cli - PullRequest
0 голосов
/ 18 декабря 2018

Я создал проект, используя 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/"
  }
}
...