怎么让 webpack 编译后的文件可以直接在硬盘上打开就正常运行?

2017-10-04 09:28:27 +08:00
 yuann72

我用的 vue-cli, 编译完成后会提示:

  Build complete.

  Tip: built files are meant to be served over an HTTP server.
  Opening index.html over file:// won't work.

我想要编译后的文件可以直接从硬盘打开 index.html 且正常运行
能否通过改配置文件来实现?

4362 次点击
所在节点    问与答
8 条回复
ljcarsenal
2017-10-04 09:31:12 +08:00
如果打包出来的只有一个文件的话应该是可行的 如果有多个文件 涉及到懒加载 不可行
ipwx
2017-10-04 09:34:11 +08:00
你可以考虑 python -m SimpleHTTPServer (2.x) 或者 python -m http.server (3.x)
mdluo
2017-10-04 09:39:02 +08:00
https://github.com/zeit/serve

可以安装成 devDependencies 然后在 scripts 里面分配个命令,也可以全局安装,随处都可以用

`serve -s dist`

`-s` 参数是如果是 SPA,可以把路由重定向到 index.html
yuann72
2017-10-04 09:39:32 +08:00
好吧 那就是没办法了...
hronro
2017-10-04 10:07:32 +08:00
之所以会有这个提示,并不是因为 webpack 本身打包出来的文件不能直接运行,而是浏览器在访问 file:// 协议的时候,有一些限制。所以,如果你代码里没用到什么特殊的东西的话,应该是可以直接运行的
airyland
2017-10-04 11:10:30 +08:00
在 config 里把 assetsPublicPath 改成 './'
KeepPro
2017-10-04 11:44:51 +08:00
首先 html 是一种标记文本;
其次它通常是由浏览器来解释执行的;操作系统并不直接执行它;
最后你这种使用 file 协议导致无法正常运行的情况,直接自己装一个服务器然后用 http 协议直接访问就行。
meszyouh
2017-10-04 12:50:33 +08:00
把 webpack 的 publicPath 设置成你的打包 位置的绝对路径就行了, 懒加载也可以 ( 只能是 hash 形式 )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/395361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX