【问题标题】:*.vue files, Visual Studio 2017 & TypeScript*.vue 文件、Visual Studio 2017 和 TypeScript
【发布时间】:2017-05-28 04:16:27
【问题描述】:

是否可以在 Visual Studio 2017 中编辑 vuejs 的 *.vue 组件文件,并支持 HTML、TypeScript 和 SCSS 的突出显示和智能感知?

目前,我将不同的部分分成不同的文件:

<!-- my-component.vue opened in HTML editor -->
<template>
    <div> text </div>
</template>
<script src="./path/to/my-component.ts"></script>
<style src="./path/to/my-component.scss"></style>

【问题讨论】:

  • 这方面有什么更新吗?我仍在努力获得对 .vue 单文件组件文件的 SCSS 支持。

标签: vue.js vuejs2 visual-studio-2017


【解决方案1】:

目前的答案是否定的。 HTML 编辑器可以识别某些可以托管的语言,例如 CSS、JavaScript 和 Razor (ASP.NET)。在这些情况下,编辑器会做一些花哨的事情来将文本部分映射到每种语言服务。但是,TypeScript 和 SCSS 目前不支持该功能,据我所知,这两个团队都没有积压。

请使用 VS 反馈工具提出此要求。由于 vuejs 支持这一点,它具有一定的分量,并且可能会在未来的功能规划中被考虑在内。客户报告有时比我的更重要。

(完全披露:我在拥有 VS 中的 HTML 和 SCSS 编辑器的团队工作。我们不拥有 TypeScript,但我们与团队合作处理此类事情。)

【讨论】:

  • 嘿@Jimmy MS 对此有何更新?任何积压更新?
  • @PaulLemke 不幸的是,目前它仍然不是一个高优先级的功能。我找不到关于这个主题的有效 VS 反馈请求,所以我仍然建议提交一个。如果它获得足够的选票,则可以提高优先级。
  • @PaulLemke UserVoice 建议始终不会发送给功能团队。产品内 VS 反馈是提出此要求的更好地方,因为这些项目会直接在我们的工作项目数据库中进行跟踪。
  • @Jimmy 现在 VS2019 有什么变化吗?
【解决方案2】:

我使用 django 模板扩展在 vs 代码中打开它。它似乎有效,我知道它是一种不同的语言,但它适用于 linting 和自动格式化

【讨论】:

    【解决方案3】:

    我遇到了同样的困难,我最终使用 Visual Studio Code 编辑器来处理 Vue 文件并安装了这个名为 Vetur 的插件:https://github.com/vuejs/vetur
    您可以通过在 Visual Studio Code 侧边菜单上搜索扩展来安装它。

    【讨论】:

      【解决方案4】:

      Visual Studio 有一个名为 VuePack 的 Vue 插件,它将为位于此处的单页 vue 文件“*.vue”提供更好的开发体验:https://marketplace.visualstudio.com/items?itemName=MadsKristensen.VuejsPack-18329

      【讨论】:

      • VuePack 不支持打字稿。这是基本的智能感知。不是我们期望的完整的 TypeScript 体验。
      • 完全正确。仅供参考,它出现在上次 VS 更新 15.5.2 VuePack 变得不稳定之后。如果您使用的是 VSCode,Vetur 是您的最佳选择。我希望微软在不久的将来支持完整的 VueJS 故事,因为试图在 VS 2017 中使用 VueJs + TypeScript + SystemJs 是一场噩梦。我发现在 VS 2017 中工作的唯一开始:github.com/MarkPieszak/aspnetcore-Vue-starter
      【解决方案5】:

      一段时间后,我实际上已经在 Visual Studio 2017 中设置了所有内容。(除了 scss 之外的所有内容)

      这是我所做的:

      1. 安装vue-cli

      2. 安装VuePack - https://marketplace.visualstudio.com/items?itemName=MadsKristensen.VuejsPack-18329

      3. 在命令提示符下运行这一行: dotnet new --install Microsoft.AspNetCore.SpaTemplates::*

      4. 在命令提示符下,转到要创建应用程序的目录并运行:

        dotnet new vue

        npm install

        这将为您创建项目。您现在可以在 Visual Studio 2017 中打开项目/添加项目。

        但是编译器无法识别.vue 文件。我不得不再添加一个手动步骤:

      5. 在应用的根目录下有个文件webpack.config.js,查找module => rules,需要添加新的规则:

        { test: /\.vue$/, include: /ClientApp/, loader: 'vue-loader', options: { loaders: { js: 'awesome-typescript-loader?silent=true' } } },

      6. 在此之后我遇到了一些 TypeScript 编译错误 - 应用程序会卡在 Loading... 上 - 要解决这个问题,您需要编辑 tsconfig.json - 添加以下内容:

        "awesomeTypescriptLoaderOptions": { "useWebpackText": true, "useCache": true, "useTranspileModule": true }

      在此之后,我运行该项目没有问题。


      其他可以帮助您的有趣资源:

      http://www.dotnetcurry.com/aspnet/1383/modern-web-dev-aspnet-core-webpack-vuejs

      https://github.com/MarkPieszak/aspnetcore-Vue-starter

      https://herringtondarkholme.github.io/2016/10/03/vue2-ts2/

      【讨论】:

      • 这将创建一个新的 .net 核心项目。你知道如何为现有的 MVC.NET 项目启用突出显示吗?
      • 我知道这是一篇旧帖子,但你有没有在 Visual Studio 2017 或 '19 中为 vue 文件工作过 linter?
      【解决方案6】:

      Microsoft 现在声称 Visual Studio 2017 支持 .vue 文件中的 Typescript:https://developercommunity.visualstudio.com/idea/351510/support-vue-file-intellisense-in-visual-studio.html

      确实,我尝试过,并且(在重新加载一些文件后)html 代码和 Typescript 的语法突出显示以及智能感知工作正常。仍在尝试弄清楚如何说服编译器生成 .js 文件...

      【讨论】:

        猜你喜欢
        • 2017-10-12
        • 2018-10-25
        • 2018-02-18
        • 1970-01-01
        • 2017-08-28
        • 1970-01-01
        • 2019-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多