1

我正在更新我们通过 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 在我认为将由模块的 webpack 配置中的 babel 加载器处理的选项链上爆炸了。

我仔细检查了我的模块的 package.json 文件,它在常规依赖项中肯定有 babel 的预设,而不是 dev 依赖项(即它作为模块安装的一部分安装)。

依赖项列表

我在这里做错了吗?似乎相同的构建过程是否有效

4

0 回答 0