如何在我的项目构建后自动将 WebPack 输出文件保存到另一个地方

How to save WebPack output files to another place automatically after my project is built

我们有一个 SDK 项目 被另外两个项目依赖。

当我们要构建整个应用程序时,首先我们需要构建SDK项目并上传。然后我们可以在运行 npm install.

之后再建两个项目

这次我想为开发者添加一个脚本。当我 运行 SDK 项目中的脚本时,我可以将构建的输出文件保存到另一个项目 node_modules.

这是我的代码。

package.json 文件:

{
  ...
  "scripts": {
    "build:dev": "webpack --mode=development",
    ...
  }
  ...
}

webpack.config.js 文件:

let config = {
  ...
  module: {
    rules: [
      {
        test:/\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
  }
  ...
}

module.exports = (env, argv) => {
  if(argv.mode === 'development') {
    // We put all the projects in one repo
    config.output.path = path.resolve(__dirname,'../another-project/node_modules/sdk/dist/bundle')
  }
}

最后我们在tsconfig.json中设置了outDir

问题是:

我用 webpack -env xxx && webpack -env xxx 解决了最后一个问题。我只是 运行 编写了两次脚本,也许有人有更好的想法。

现在只有一个问题:

https://webpack.js.org/configuration/output/

module.exports = {
...
  output: {
    filename: "lib.js"
  }
...

在typescript中配置out目录对你没有帮助,因为webpack是负责编译的,只会在输出文件本身后使用typescript进行编译。

webpack.config.js 文件:

let config = {
  ...,
  module: {
    rules: [
      {
        test:/\.tsx?$/,
        use: 'ts-loader',
        options: {
          configFile: "tsconfig.server.json"
        }
      }
    ]
  },
  ...
}

然后我可以在webpack模块中更改configFlie