Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue typescript错误,网页包别名,未找到路径_Typescript_Vue.js_Webpack_Vuejs2 - Fatal编程技术网

Vue typescript错误,网页包别名,未找到路径

Vue typescript错误,网页包别名,未找到路径,typescript,vue.js,webpack,vuejs2,Typescript,Vue.js,Webpack,Vuejs2,我在使用typescript在vue项目上配置webpack别名时遇到问题。如果我使用的是普通的javascript,就不会遇到同样的问题,因此我感到困惑 该项目分为2个部分,“AppuMarketplace”、“AppuProducer”(类似于管理员),我还有一个用于共享组件和实用程序的第三个文件夹 项目文件夹结构: 环境市集 环境制作人 公开的/ src/ 应用程序市场/ 应用程序制作人/ 应用程序共享/ vue.config.js tslint文件、babel、package.js

我在使用typescript在vue项目上配置webpack别名时遇到问题。如果我使用的是普通的javascript,就不会遇到同样的问题,因此我感到困惑

该项目分为2个部分,“AppuMarketplace”、“AppuProducer”(类似于管理员),我还有一个用于共享组件和实用程序的第三个文件夹

项目文件夹结构:

  • 环境市集
  • 环境制作人
  • 公开的/
  • src/
    • 应用程序市场/
    • 应用程序制作人/
    • 应用程序共享/
  • vue.config.js
  • tslint文件、babel、package.json等
我在
package.json
中分别运行2个应用程序和脚本

例如,
“serve:marketplace”:“vue cli service serve--mode marketplace src/app_marketplace/main.ts”
调用my
.env.marketplace
文件,并将
env
设置为
vue_app_marketplace=true

现在,在我的
vue.config.js
中,我使用env变量设置别名

configureWebpack: {
    resolve: {
        alias: {
            '~': path.resolve(__dirname, 'src/app_shared'),
            '@': path.resolve(__dirname, process.env.VUE_APP_MARKETPLACE ? 'src/app_marketplace' : 'src/app_producer')
        }
    }
}
问题是,从我的
main.ts
内部
app\u marketplace
开始,很多导入都不起作用或给我错误。另一件我无法解释的事情是,为什么它们有些有效,有些无效

import App from './App.vue'
import router from '~/router' // ERROR
import store from '@/store' // ERROR
import '@/plugins'
import '~/directives'
import { DEBUG } from '~/const/debug' // ERROR

我做错了什么?

您的
tsconfig.json
应该有一个与您的网页路径别名匹配的
路径配置:

{
  "paths": {
    "~/*": [
      "src/app_shared/*",
    ],
    "@/*": [
      "src/*"
    ]
  },
  ...
}

由于文件是JSON,您将无法在文件中使用条件路径别名。

是否存在以下问题:
“@/*”:[“src/app\u marketplace/*”,“src/app\u producer/*”]
?除非在两个目录下都有相同的目录树,否则这样做不会有问题(例如,
src/app\u marketplace/foo/foo.ts
src/app\u producer/foo/foo.ts
,在这种情况下,第一个找到的路径优先)。