我尝试将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/
答案 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-all向public
添加了一个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);
}
}