我已经从Laravel Mix切换到Vite,并试图完成同样的事情“npm运行手表”为Laravel Mix所做的。我们的临时服务器不在本地(例如staging.app-domain-name.com)。如果我用Vite运行npm run dev,它会加速应该在http://ip:3000的“dev”服务器,但显然这不起作用。除了没有一个活动的监视器之外,我无法让dev与Vue Devtools插件一起使用(因为Vite只能在服务器上输出prod)。
我的vite.config.js:
const { resolve } = require('path');
import vue from '@vitejs/plugin-vue';
export default ({ command }) => ({
base: command === 'serve' ? '' : '/dist/',
publicDir: 'fake_dir_so_nothing_gets_copied',
build: {
manifest: true,
outDir: resolve(__dirname, 'public/dist'),
rollupOptions: {
input: 'resources/js/app.js',
},
},
server: {
host: true,
port: '8080',
hot: true
},
plugins: [vue()],
resolve: {
alias: {
'@': resolve('./resources/js'),
},
},
});
我的应用程序. js
import "./bootstrap";
import '../css/app.css';
import { createApp, h } from 'vue';
import { App as InertiaApp, plugin as InertiaPlugin } from '@inertiajs/inertia-vue3';
import { InertiaProgress } from '@inertiajs/progress';
let asyncViews = () => {
return import.meta.glob('./Pages/**/*.vue');
}
const el = document.getElementById('app');
createApp({
render: () =>
h(InertiaApp, {
initialPage: JSON.parse(el.dataset.page),
resolveComponent: async name => {
if (import.meta.env.DEV) {
return (await import(`./Pages/${name}.vue`)).default;
} else {
let pages = asyncViews();
const importPage = pages[`./Pages/${name}.vue`];
return importPage().then(module => module.default);
}
}
}),
})
.mixin({ methods: { route } })
.use(InertiaPlugin)
.mount(el);
和package.json脚本:
"scripts": {
"predev": "printf \"dev\" > public/hot",
"dev": "vite",
"preprod": "printf \"prod\" > public/hot",
"prod": "vite build"
}
通过运行以下命令在远程服务器上生成开发包所需的结果
npm run dev
目前它试图创建localhost dev。我假设vite.config.js中的一些东西需要设置才能完成。我已经浏览了文档,但没有找到足够清楚的东西。
6条答案
按热度按时间w6mmgewl1#
要让Vite也监听网络接口,只需在dev脚本中添加**--host**参数:
它给出了这样的结果:
但是这不是解决方案。我在CORS上遇到了一个问题。我用另一种方法解决了它。它取决于Web服务器。我使用nGinx并设置反向代理在端口3000上侦听。
由于不与同一端口上的vite冲突,所以只在公共IP地址上侦听也很重要。Vite默认只在本地主机上侦听。
在package.json中我放了--https属性
就这样。现在我可以跑了
最后,我把脚本到我的布局刀片结束维特开始工作。
设置nginx以代理WebSocket https://www.nginx.com/blog/websocket-nginx/
Sebastyan使用Laravel https://sebastiandedeyne.com/vite-with-laravel设置Vite的指南
rdrgkggo2#
将此配置的此服务器部分添加到
vite.config.js
文件中的配置中为我修复了一些问题。除非您可能希望将
host
部分从localhost
更改为您的服务器的IP地址。然后像其他人提到的那样执行
npm run dev -- --host
。我从here复制粘贴了这个答案,没有阅读任何其他关于它的内容或它为什么工作。
2lpgd9683#
添加由
--
分隔的--host
在我的情况下工作-不需要这样更改配置文件:vcudknz34#
试试这个:
对我来说很有效,但应用程序一直在重新加载
brjng4g35#
将参数
"--" "--host"
添加到我的Docker文件中就达到了这个目的。像这样:
CMD ["npm","运行","开发","--","--主机"]
这允许我以开发模式启动服务器,并从我的主机访问它。
sqxo8psd6#