使用 CLI 服务的 Vue 相对路径

Posted

技术标签:

【中文标题】使用 CLI 服务的 Vue 相对路径【英文标题】:Vue Relative Paths with the CLI Service 【发布时间】:2020-03-15 21:23:34 【问题描述】:

遇到一个肯定与 Webpack 相关的问题。

尝试在 CLI 创建的 Vue 应用程序中将最基本的服务作为冒烟测试(从小处开始)。

版本: Vue CLI:3.11.0 Vue 2.6.10 @vue/CLI-Service 4.0.5

我在项目的src 文件夹中创建了一个名为shared 的文件夹。 HelloWorld.vue 文件位于 components 文件夹中。在那个文件中,我导入了一个放在shared 中的数据服务,并尝试在HelloWorld 组件的Created 事件中使用它:

<script>
    import  dataService  from "../shared";

    export default 
      name: "HelloWorld",
      props: 
        msg: String
      ,
      created() 
        dataService.addWebSite();
      
    ;
</script>

数据服务非常简单,只需要打一个 API (data.service.js):

import *  as axios from 'axios';

const addWebSite = function () 

    axios(
        method: 'POST',
        url: 'https://localhost:44362/WebSites/CreateWebSite',
        data: 
            name: "Pluralsight",
            url: "http://Pluralsight.com"
        
    ).then((response) => 
        var discard = response.data;
        return discard;
    );
;

export const dataService = 
    addWebSite: addWebSite
;

当我执行npm run serve 时,我看到以下错误消息:

ERROR 编译失败,出现 1 个错误 6:13:39 PM 未找到此相关模块:

../共享在 ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/ cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HelloWorld.vue?vue&type=script&lang=js&

我猜这是某种 Webpack 相对路径的事情,但不知所措,无法使用 Google 解决。

vue.config.js 看起来像这样:

module.exports = 
    configureWebpack: 
        devtool: 'source-map',
    
;

我已经尝试将 './' 和 '/' 的 publicPath 属性添加到该导出对象。

有人知道怎么回事吗?

【问题讨论】:

【参考方案1】:

当您尝试从文件夹而不是文件导入时,像这样

import  dataService  from "../shared";

这意味着您实际上想从"../shared/index.(any_supported_extension)" 导入。但是由于您的文件实际上命名为data.service.js,因此您必须将导入更改为

import  dataService  from "../shared/data.service.js";

【讨论】:

当然。谢谢。我之前确实尝试过,但这次成功了。这是完全有意义的,因为我要介绍的示例有一个索引文件,该文件从文件夹中的每个服务中导出内容。谢谢。

以上是关于使用 CLI 服务的 Vue 相对路径的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli3 静态资源配置

避免 Angular CLI 中的相对路径

Vue项目打包后的资源引用如何使用相对路径

Vue Cli Webpack 后台 url 路径问题

PhoneGap Build 和 CLI 的相对图标路径

带有 graphql cli 的 Azure node.js 相对路径