我正在更新我们通过 bitbucket 在项目中安装的私有 node_module。该软件包有一些通过 webpack 捆绑的覆盖,并且直接使用该捆绑包(即在用于我正在为其安装模块的项目的构建工具之外)。
我想将模块的构建命令作为安装后脚本触发,以便在我们在主项目中安装或更新模块时重新构建包。
在模块的 package.json 我有这个:
"scripts": {
"build": "webpack",
"dev": "webpack --watch",
"serve": "webpack-dev-server",
"postinstall": "npm run build"
},
我有以下 webpack.config.js 文件:
const path = require("path")
module.exports = {
mode: "development",
watch: false,
entry: "./src/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "dist"),
},
devServer: {
contentBase: "dist",
},
module: {
rules: [
{
test: /\.js/,
exclude: /(node_modules)/,
use: {
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"],
},
},
},
],
},
}
而且我已经确认npm run build
在模块代码库中触发工作正常,但是当我去更新主代码库中的模块时,我得到了错误:
Webpack 在我认为将由模块的 webpack 配置中的 babel 加载器处理的选项链上爆炸了。
我仔细检查了我的模块的 package.json 文件,它在常规依赖项中肯定有 babel 的预设,而不是 dev 依赖项(即它作为模块安装的一部分安装)。
我在这里做错了吗?似乎相同的构建过程是否有效