Javascript 将webpack设置为通过HTTPS在自定义域上本地运行
为了使用我想集成到应用程序中的模块(我在本地开发),我必须做两件事:Javascript 将webpack设置为通过HTTPS在自定义域上本地运行,javascript,localhost,reactjs,webpack,webpack-dev-server,Javascript,Localhost,Reactjs,Webpack,Webpack Dev Server,为了使用我想集成到应用程序中的模块(我在本地开发),我必须做两件事: 1) 使我的应用程序在HTTPS上本地运行。 2) 使用特定域运行应用程序 对于用于本地开发的Webpack dev服务器,这两件事应该都很容易,但由于某些原因,它并没有像文档中所建议的那样工作 我的webpack.config文件是: module.exports = { entry: './app/js/app.js', output: { path:'./app/js/', publicPath:
1) 使我的应用程序在HTTPS上本地运行。
2) 使用特定域运行应用程序 对于用于本地开发的Webpack dev服务器,这两件事应该都很容易,但由于某些原因,它并没有像文档中所建议的那样工作 我的
webpack.config
文件是:
module.exports = {
entry: './app/js/app.js',
output: {
path:'./app/js/',
publicPath: 'https://specialurl.com/assets',
filename:'bundle.js'
}
我指向的路径已添加到我计算机上的主机文件中,因此它应该与localhost默认值一样有效
我的package.json
文件将此作为开发服务器的启动脚本:
"scripts": {
"start": "webpack-dev-server --progress --colors --https",
}
我做了这些更改,然后在保存后用npm start重新启动。问题是服务器仍然没有在https上运行,当我将浏览器指向新链接时,它什么也没有显示。我找到的所有文档都让我觉得这应该是可行的,所以我肯定错过了一些明显的东西。解决了它!正如我预期的那样,使用Webpack非常容易,但是文档有点混乱 您只需编辑主机文件以包含所需的域,然后将以下代码添加到
webpack.config
:
devServer: {
host: "localhost.specialurl.com",
port: 1234,
https: true
},
运行
npm start
并将您的浏览器指向,您应该都已设置:)要使热模块重新加载正常,请将public
值设置为undefined
,然后它将使用host
中的值
environment.config.devServer.public=未定义
environment.config.devServer.host='localhost.example.com'
environment.config.devServer.https={
https:是的,
热:是的,
key:fs.readFileSync(path.resolve('ssl/localhost.example.com.key.pem'),
cert:fs.readFileSync(path.resolve('ssl/localhost.example.com.cert.pem'),
}
这是因为这一行忽略了指定的主机,如果定义了public
:
为什么不在webpack前面放一台nginx服务器,设置证书,然后编辑主机文件,将域指向nginx?因为webpack似乎具备了所需的所有功能,所以我希望尽可能简化工作。如果不是这样的话,那么尝试一下似乎是个好主意:)只是说-这对于节点服务器来说非常简单,即使在开发中我也更喜欢它,因为它更具可扩展性和灵活性。如果能与
hot:true
一起使用,真是运气好吗?该应用程序在自定义域上工作,但webpack一直尝试打开与localhost:3000的socket.io连接。您是如何编辑主机文件的127.0.0.1 localhost.specialur.com
?是的,有必要添加127.0.0.1 localhost.specialur.com
,若要使其正常工作,您还可以执行127.0.0.1 localhost localhost.specialur.com
,这样localhost也可以继续工作。将127.0.0.1 localhost localhost.specialur.com添加到我的windows主机文件中可以正常工作。另一种方法是,如果您控制了域,您可以向域中添加一条记录,并将localhost.specialur.com指向IP地址127.0.0.1。例如,如果您ping localhost.huawei.com,则解析为127.0.0.1。