我可以在sails.js 资产目录中轻松运行vue.js webapp 吗?

Posted

技术标签:

【中文标题】我可以在sails.js 资产目录中轻松运行vue.js webapp 吗?【英文标题】:Can I easily run a vue.js webapp in a sails.js assets directory? 【发布时间】:2019-02-19 14:01:28 【问题描述】:

我正在学习如何使用 Sails.jsvue.js。所以我正在尝试开发一个小应用程序,其中有一个 vue.js 应用程序位于sails.js 的 assets/ 目录内。这个想法是用同一台服务器为这两个应用程序提供服务(命令 sails lift),但我遇到了一些麻烦来使它工作。

原因是因为sails服务器可以服务我的vue应用的索引文件(assets/web/dist/index.html),但是其他vue资源会404,因为我的vue index.html文件会要求像这样的地址localhost:1337/static/etc 而不是 localhost:1337/web/dist/static/etc

所以我可以让它在 assets/web(我的 vue 目录)中运行 npm run-script build 并创建 assets/web/ 的副本dist 在我的资产目录中。这样,我的 vue 应用程序由sails.js 开发服务器提供服务。但是每次我更改某些内容时,我都必须“编译” vue 并复制它。这对生产来说很好,但对开发来说很糟糕。

是否有一些简单的方法可以仅使用一个开发服务器来开发此应用程序,或者我应该将它们分成两个应用程序并分别提供它们(在开发环境中)?

我正在使用sails v1.0.2 和最新的bootstrap-vue(当前bootstrap ^4.0.0-beta.2 和vue ^2.5.2)

(在https://github.com/lampsbr/projetao 中可用)

【问题讨论】:

【参考方案1】:

你应该拆分它,例如。 G。 frontend/backend 目录,最好为两台服务器设置不同的终端会话,否则可能会变得混乱。在我使用 Vue.js 和 Sails.js 的 example project 中,仍然可以同时启动两者。但这仅适用于非常快速的更改。

这就是我在package.json 中的做法:

"scripts": 
    "dev": "cd backend && npm run dev & cd frontend && npm run dev",
    "install": "cd frontend && npm i && cd ../backend && npm i && cd .."
,

只有在生产时才需要编译 Vue.js 应用程序,正如你所提到的,它将被推送到 Sails.js 的 assets 目录中。也就是说,只有您编译的 Vue.js 应用程序应该位于您的资产目录中,没有源文件!

另一种常见的方法是在 Sails.js 目录中添加一个 client 目录。

【讨论】:

以上是关于我可以在sails.js 资产目录中轻松运行vue.js webapp 吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Sails.js 后端项目中访问上传的图像

Sails.js 对套接字请求的授权

如何将凉亭组件与sails.js 连接?

sails.js在mysql中运行多个命令查询

Sails.js + Passport.js 获取当前登录用户

如何在前端使用 SPA 设置 Sails.js 路由以支持 pushstate