如何在我的项目构建后自动将 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 参数更改 typescript 声明文件的输出文件路径?
- 如何将所有文件一次保存到两个地方?
我用 webpack -env xxx && webpack -env xxx
解决了最后一个问题。我只是 运行 编写了两次脚本,也许有人有更好的想法。
现在只有一个问题:
- 如何动态设置typescript声明文件的输出文件路径?
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
。
我们有一个 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 参数更改 typescript 声明文件的输出文件路径?
- 如何将所有文件一次保存到两个地方?
我用 webpack -env xxx && webpack -env xxx
解决了最后一个问题。我只是 运行 编写了两次脚本,也许有人有更好的想法。
现在只有一个问题:
- 如何动态设置typescript声明文件的输出文件路径?
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
。