Vue cli 3项目别名src到@或~/不起作用

Posted

技术标签:

【中文标题】Vue cli 3项目别名src到@或~/不起作用【英文标题】:Vue cli 3 project alias src to @ or ~/ not working 【发布时间】:2019-08-14 01:12:07 【问题描述】:

我已经用vue cli 3 安装了这个项目,但是随着项目的发展,组件的导入变得越来越难看,我最终导入了一个类似的组件

import Component from '../../../../components/folder/Component.vue'

我只想给 src 文件夹起别名并做

import Component from '@components/folder/Component.vue'

我确实读到我必须修改vue.config.js,我已经完成了但错误是一样的

Module not found: Error: Can't resolve '@components/Permissions/PermissionsTable'

这是我的 vue.config.js

  const path = require("path");

  const vueSrc = "./src";

  module.exports = 
    runtimeCompiler: true,
    css: 
      modules: true
    ,
    configureWebpack: 
      resolve: 
        alias: 
          "@": path.join(__dirname, vueSrc)
        
      
    
  ;

我错过了什么吗?我还应该做什么?

【问题讨论】:

使用 Vue CLI 生成的项目应该已经拥有该别名,无需任何额外配置。 CLI内置的,可以试试import Component from '@/components/folder/Component.vue'吗? 【参考方案1】:

完整示例:

const path = require("path");
const vueSrc = "./src";
module.exports = 
  runtimeCompiler: true,
  css: 
    modules: true
  ,
  configureWebpack: 
    resolve: 
      alias: 
        "@": path.resolve(__dirname, vueSrc)
      ,
      extensions: ['.js', '.vue', '.json']
    
  
;

虽然我不确定扩展是否能解决您遇到的问题。如果您没有在导入定义中编写扩展名,这只会添加扩展名: https://webpack.js.org/configuration/resolve/#resolveextensions

我觉得缺少/ 是个问题。所以应该是@/components/Permissions/PermissionsTable 而不是@components/Permissions/PermissionsTable,因为您没有在vueSrc 的末尾添加/。所以 webpack 只会将它附加到 ./src,如下所示:./srccomponents/Permissions/PermissionsTable

【讨论】:

【参考方案2】:

我错过了extensions: ['.js', '.vue', '.json'],,在导入时我必须使用'@/components/...'

【讨论】:

您能否提供整个 webpack 配置代码,以便其他有相同问题/问题的人可以依赖? ty【参考方案3】:

对于 Vue CLI,您需要在项目的根文件夹中创建一个文件 - jsconfig.json


  "include": ["./src/**/*"],
  "compilerOptions": 
    "baseUrl": "src",
    "paths": 
      "@/*": ["./*"]
    
  ,
  "exclude": ["node_modules"]

仅此而已,phpStorm 帮助了我

【讨论】:

【参考方案4】:

你有

import Component from '@components/folder/Component.vue'

但你需要

import Component from '@/components/folder/Component'

【讨论】:

以上是关于Vue cli 3项目别名src到@或~/不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 Storybook/vue 时别名不起作用

我的 PostCSS 插件在 Vue-cli 3 项目中不起作用

将 Babel 插件添加到 Vue CLI 项目不起作用

Vue 3 CLI 笑话测试 - MatchInlineSnapshot 不起作用?

vue-cli 3.0 vue.config.js配置 - 路径别名

Vue-cli:在 git bash windows 上创建新项目时箭头键不起作用