代码之家  ›  专栏  ›  技术社区  ›  vir us

Vuejs+webpack-为生产构建,但部署到本地主机

  •  1
  • vir us  · 技术社区  · 7 年前

    试图弄清楚如何使用webpack创建生产构建,但在将其部署到服务器之前,首先在本地运行它作为最后一个测试。

    我在考虑创建另一个命令,比如 npm run build_local 但是我不知道怎么做。

    我可以在根目录中看到以下内容 package.json 我想以某种方式结合起来 dev + build 但不知道如何做到这一点(或者使用config):

    "scripts": {
        "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
        "start": "npm run dev",
        "lint": "eslint --ext .js,.vue src",
        "build": "node build/build.js"
      },
    

    关于如何在localhost中使用以下内容运行生产构建,有什么建议吗 npm运行本地构建 命令

    编辑

    到目前为止,我尝试的是运行(手动) http-server ./dist 它似乎在本地主机上运行文件夹,但结果实际上与生产(和开发)行为不同-在我的示例中,它首先按预期呈现所有内容,但只要按“刷新”,它就会返回 404 not found

    例如,如果我打开 localhost:8080 ,vue将我重定向到 localhost:8080/login 404 虽然

    理想情况下,我希望它至少能以与本地主机上的dev build相同的方式工作。

    1 回复  |  直到 7 年前
        1
  •  1
  •   vir us    7 年前

    因此,这就像将 dev 指挥和提供 prod 在根目录下配置它 package.json :

        "build_local": "webpack-dev-server --inline --progress --config build/webpack.prod.conf.js"
        //
    

    package.json :

    "scripts": {
        "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
        "start": "npm run dev",
        "lint": "eslint --ext .js,.vue src",
        "build": "node build/build.js"
        "build_local": "webpack-dev-server --inline --progress --config build/webpack.prod.conf.js"
      }
    

    npm run build_local 它在本地主机上运行生产构建

    :根据 this github thread 和 this doc reference 要防止刷新时出现404,请将以下内容添加到 webpack.prod.conf.js (文件中的任何位置,但作为参考,您可以在 plugins )

    devServer: {
        contentBase: path.join(__dirname, 'dist'),
        historyApiFallback: true, //this line is requried
        compress: true,
        port: 9000
    },
    

    localhost:9000

    如果有人知道任何缺点给我一个评论或张贴正确的答案