【发布时间】:2023-03-03 13:38:01
【问题描述】:
我在这方面花了 2 天的时间进行试验,到目前为止还没有取得任何进展。我有一个非常基本的 ASP.NET Core 网站,为 Typescript 2.9 配置。我希望我的前端非常简单,每页只有一个 vue 应用,没有复杂的构建系统或组件。
我希望某种配置至少能正常工作。这是我当前的 tsconfig.json 文件:
{
"compilerOptions": {
"declaration": true,
"mapRoot": "/js/",
"module": "esnext",
"removeComments": true,
"sourceMap": true,
"target": "esnext"
},
"compileOnSave": true
}
(请注意,我已经尝试过模块 es6、es5,也没有尝试过)
然后,在我的 wwwroot/js 文件夹中,我有 Site.ts,如下所示:
import { Vue } from "./types/vue";
var _mixin: any;
var _vue = new Vue({
el: '#vueheader',
mixins: [_mixin],
data: {
},
methods: {},
mounted: function () {
},
});
在 wwwroot/js/types 文件夹中,我有来自 vue 的 5 个 d.ts 文件以及 vue.js 文件。打字稿正确编译成 js 文件,但是当我访问主页时,我在 chrome 中收到错误消息“404,找不到文件 /types/vue”
这里是编译好的 Site.js:
import { Vue } from "./types/vue";
var _mixin;
var _vue = new Vue({
el: '#vueheader',
mixins: [_mixin],
data: {},
methods: {},
mounted: function () {
},
});
//# sourceMappingURL=/js/Site.js.map
我的 html 有这个链接:
有人有什么想法吗?请不要让我使用像 webpack 这样复杂的构建系统。我不想用 600 多个依赖项使我的构建过程变得臃肿。
【问题讨论】:
-
据我所知,您需要一些 类的构建系统。选择一个时考虑您的时间成本。
-
好吧,当然不排除实际的类型脚本编译器。你的意思是别的吗?
-
请不要让我使用像 webpack 这样复杂的构建系统。 - 这是你需要做的,即使没人这么说。除非您想接手 Webpack 的工作,并在编译文件中手动将所有
import语句重写为工厂函数,然后将它们连接起来。工具的存在是因为它们有需求,而不是因为有人认为向不需要它们的项目引入 600 多个依赖项是个好主意。如果您使用的是编译器,这并不意味着您不需要捆绑器。这似乎与这个问题相同,stackoverflow.com/q/50642237。 -
TypeScript 只有在没有模块和导入的情况下才需要捆绑器,就像常规 ES5 一样,通过使用全局变量在文件之间交换数据。没有人使用 Vue 或其他类似的现代框架,因为它不切实际,而且您将很难找到有关如何正确执行此操作的参考……因为没有人像那样使用 Vue。
-
我基本上只需要Vue是强类型的。有没有办法在不使用模块系统的情况下获得该功能?除了将 Vue.d.ts 内容复制粘贴到每个消费 ts 文件中?
标签: typescript asp.net-core vue.js