如何使用Silex或其他PHP框架配置Vue2环境

时间:2017-10-21 13:16:48

标签: webpack vue.js vuejs2 silex

我尝试将Vue2配置为在本地开发环境中与Silex框架应用程序一起运行。我使用CLI工具创建了Vue应用程序。已将/build/dev-server.js中的开放网址从http://localhost/+port更改为http://localhost/,因此npm run dev将打开Silex应用。并在php视图中添加了以下脚本url:http://localhost:8080/app.js

现在,当我运行npm run dev时,浏览器中的新标签会使用网址http://localhost/创建。 Vue应用程序运行,我看到我的内容(所以webpack dev服务器运行)。问题是它没有热重装。当我检查浏览器控制台时,我看到该应用程序不断尝试打开http://localhost/__webpack_hmr

所以问题是,如何配置Vue开发环境,以便它可以在http://localhost:80和webpack dev服务器上使用Silex框架,并在http://localhost:8080上进行热重新加载,并且仍然可以通过打开来运行应用程序http://localhost/

1 个答案:

答案 0 :(得分:2)

我使用Laravel,但是,在我的设置中没有任何与Laravel特别相关的内容,所以对于您来说这应该是相同的,只需对文件的存储进行一些调整:

首先,您需要确保从webpack-dev-server加载脚本,所以:

<script src="http://localhost:8080/app.js"></script>

我实际上将它置于基于环境变量的条件中,因此它只在我的开发系统中执行此操作并在生产中加载捆绑的j。

接下来,您需要确保您的webpack dev配置从app.js提供webpack-dev-server。您可以使用publicPath执行此操作,该output: { path: path.resolve(__dirname, '../../../public/js/'), publicPath: 'http://localhost:8080/js/', filename: 'app.js' }, 应指向您的javascript文件所在的目录:

public/js

出于我的目的,我还设置了app.js的路径,因为这是我的js文件相对于webpack配置的位置,因此只需将其设置为silex文件所在的位置即可捆绑在devServer: { hot: true, // this enables hot reload headers: { "Access-Control-Allow-Origin": "*" }, host: "localhost", port: 8080, contentBase: path.join(__dirname, "../../../public"), // points to Laravel public folder },

现在,您只想配置dev服务器:

package.json

然后我使用npm-run-allpublic添加了一个npm脚本 - 再次指向我的php服务器的"scripts": { "serve": "php -S localhost:80 -t public, "hmr": "webpack-dev-server --env=webpack.dev", "dev": "npm-run-all --parallel hmr serve" } 文件夹:

npm run dev

现在你应该能够做到:

http://localhost:80

启动两台服务器,然后从Class A { @Autowired C c; foo() { B b = new B(); b.print("abc"); if (somecondition) { c.anotherPrint("def"); } } Class B { print(String arg) { } } Class C { @Autowired B b; anotherPrint(String arg) { b.print(arg); } }

访问您的网站