yuann72
V2EX  ›  问与答

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

  •  
  •   yuann72 · Oct 4, 2017 · 4757 views
    This topic created in 3155 days ago, the information mentioned may be changed or developed.

    我用的 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 且正常运行
    能否通过改配置文件来实现?

    8 replies    2017-10-04 12:50:33 +08:00
    ljcarsenal
        1
    ljcarsenal  
       Oct 4, 2017 via iPhone
    如果打包出来的只有一个文件的话应该是可行的 如果有多个文件 涉及到懒加载 不可行
    ipwx
        2
    ipwx  
       Oct 4, 2017
    你可以考虑 python -m SimpleHTTPServer (2.x) 或者 python -m http.server (3.x)
    mdluo
        3
    mdluo  
       Oct 4, 2017
    https://github.com/zeit/serve

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

    `serve -s dist`

    `-s` 参数是如果是 SPA,可以把路由重定向到 index.html
    yuann72
        4
    yuann72  
    OP
       Oct 4, 2017
    好吧 那就是没办法了...
    hronro
        5
    hronro  
       Oct 4, 2017
    之所以会有这个提示,并不是因为 webpack 本身打包出来的文件不能直接运行,而是浏览器在访问 file:// 协议的时候,有一些限制。所以,如果你代码里没用到什么特殊的东西的话,应该是可以直接运行的
    airyland
        6
    airyland  
       Oct 4, 2017
    在 config 里把 assetsPublicPath 改成 './'
    KeepPro
        7
    KeepPro  
       Oct 4, 2017 via Android
    首先 html 是一种标记文本;
    其次它通常是由浏览器来解释执行的;操作系统并不直接执行它;
    最后你这种使用 file 协议导致无法正常运行的情况,直接自己装一个服务器然后用 http 协议直接访问就行。
    meszyouh
        8
    meszyouh  
       Oct 4, 2017
    把 webpack 的 publicPath 设置成你的打包 位置的绝对路径就行了, 懒加载也可以 ( 只能是 hash 形式 )
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5862 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 06:37 · PVG 14:37 · LAX 23:37 · JFK 02:37
    ♥ Do have faith in what you're doing.