尝试将 vue 与 ts-node 一起使用

Posted

技术标签:

【中文标题】尝试将 vue 与 ts-node 一起使用【英文标题】:Trying to use vue with ts-node 【发布时间】:2017-09-27 00:25:43 【问题描述】:

我很乐意在我的服务器端代码中导入一个 .vue 文件。 深深地,我还没有真正使用 *.vue 文件导出,但是一些代码对于客户端和服务器端是通用的,并引用这些文件。

我现在使用 ts-node 进行开发/调试,我使用 webpack 将我的客户端代码与我的 *.vue 文件捆绑在一起。

我尝试了很多解决方案,但没有一个真正有效 - 甚至 tsConfig.json 中引用的 .d.ts

declare module '*.vue' 
    import Vue = require('vue')
    const value: Vue.ComponentOptions<Vue>
    export default value

有谁知道一个优雅的解决方案,还是我应该辞职以将 webpack 也用于服务器端? (我有点犹豫,因为只有客户端编译已经很慢了)

【问题讨论】:

【参考方案1】:

我建议将客户端和服务器通用的代码提取到单独的目录或包中,然后您可以在服务器和客户端代码中导入此代码。

我不确定您是如何设置项目的,但解决此问题的一种方法是使用 monorepo 设置(您可以查看lerna、npm workspaces、yarn workspaces)。另一种方法是将通用代码放在充当自己的 npm 包的目录中,并带有自己的 package.json 文件。然后从客户端和服务器代码中的 package.json 文件中,您可以将公共包引用为依赖项,并使用 file:../path/to/common url 从您的 npm 目录指向本地目录。

【讨论】:

以上是关于尝试将 vue 与 ts-node 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

ts-node 将选项传递给节点

nodemon 无法在 exec 参数中找到 ts-node

尝试通过 --experimental-loader 选项使用 mocha、ES6 模块和 ts-node

无法再获取节点或 ts-node/register 以使用 es2020(flatMap 不是函数)

节点 Lambda:ts-node 的导入导致 TypeError

vue.js 如何将 props 与单个文件组件一起使用