代码之家  ›  专栏  ›  技术社区  ›  Richard

Webpack post构建后执行shell命令

  •  0
  • Richard  · 技术社区  · 6 年前

    我有一个Laravel项目,正如你所知道的,当你部署你的应用程序时,你的公共目录中的所有内容都应该复制到你的htdocs或公共html目录中,以隐藏你的应用程序代码。

    不过,我想在生成之后再添加一个命令,即将所有内容从public目录复制到htdocs/public_html中的正确目录中。

    到目前为止我在这里读到了这个问题 Run command after webpack build

    它工作,我可以让回声工作,但我不知道为什么cp不工作。Echo可以工作,但我如何知道可以使用哪些shell命令?

    这是我的插件到目前为止,我想我需要改变目录以确保安全 在一遍又一遍地复制任何东西之前,什么都不起作用。

    mix.webpackConfig(webpack => {
      return {
        plugins: [
          new WebpackShellPlugin({
            onBuildStart: ['echo "Starting Build ..."'],
            onBuildEnd: ["cd 'E:\\xammp\\apps\\FactorioCalculator'",
              "cp '.\\public\\*' '..\\..\\htdocs\\FactorioCalculator\\' -f -r"]
          })
        ]
      };
    });
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Rwd    6 年前

    你可以一直使用 copyDirectory 混合法。把下面的东西放在你的下面 webpack.mix.js 文件:

    mix.copyDirectory('public', '../../htdocs/FactorioCalculator/')
    

    ..\\..\\htdocs\\FactorioCalculator\\ 按照你所问的路径(我只有我的mac,所以我不能在我的另一台机器上测试)。


    要回答您原来的问题,如果您想在webpack每次完成构建时执行一个命令,可以使用 mix.then()