【问题标题】:How to ignore package.json from subrepo如何忽略 subrepo 中的 package.json
【发布时间】:2019-08-19 04:05:42
【问题描述】:

我正在开发一个核心库,其中可以克隆和附加不同的组件。每个组件目录都有一个 package.json 文件。我的核心正在使用 webpack,当我运行构建命令时,它会抛出这样的错误

ERROR in ./src/clients/products/src/Products.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
SyntaxError: /Users/mughees/Desktop/midgard-react/src/clients/products/src/Products.js: Unexpected token (46:17)

如果我从 subrepo/module 中删除 package.json,它编译得很好。

这是我现在的 webpack。

const path = require("path");
const webpack = require("webpack");

module.exports = {
  entry: ["babel-polyfill", "./src/index.js"] ,
    mode: "development",
    devtool: 'inline-source-map',
    module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /(node_modules|bower_components)/,
        loader: "babel-loader",
        options: { presets: ["@babel/env"] }
      },
      {
        test: /\.(css|scss)$/,
        use: [
          "style-loader",
          "css-loader",
          "sass-loader"
        ]
      },
      { 
        test: /\.(jpe?g|png|gif|svg)$/i,
        use: [
          "file-loader",
          {
            loader: "image-webpack-loader",
            options: {
              bypassOnDebug: true,
              disable: true,
            },
          },
        ],
      }
    ]
  },
  resolve: {
    extensions: ["*", ".js", ".jsx"],
    modules: [path.resolve(__dirname, './src'), 'node_modules'],
    alias: {
      store: path.resolve(__dirname, './src/store'),
    }
  },
  output: {
    path: path.resolve(__dirname, "dist/"),
      publicPath: "/dist/",
      filename: "bundle.js"
  },
  devServer: {
    contentBase: path.join(__dirname, "public/"),
      port: 3000,
      publicPath: "http://localhost:3000/dist/",
      historyApiFallback: true,
      hotOnly: true
  },
  plugins: [new webpack.HotModuleReplacementPlugin()]
};

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题

标签: webpack babeljs package.json babel-loader


【解决方案1】:

问题与 babel 相关,与 webpack 无关。我有它before

这是一个带有 package.json 文件的子目录的测试,它在运行 webpack 后会引发如下错误:

ERROR in ./home/three-JSX-main-patterns.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
SyntaxError: /var/www/html/ir/jsfun/home/three-JSX-main-patterns.js: Unexpected token (5:27)

并在我的情况下抱怨 JSX

solution

你的用例是什么?

  • 您想以编程方式创建配置?
  • 你想编译 node_modules 吗?

    babel.config.js 适合你!

  • 您有一个仅适用于您的简单单个包的静态配置?

    .babelrc 适合你!

就我而言,.babelrc 是这样的:

{
  "presets": ["@babel/preset-env", "@babel/preset-react"],
}

然后我将其替换为 babel.config.js,如下所示:

module.exports = function (api) {
  api.cache(true);


  const presets = ["@babel/preset-env", "@babel/preset-react"];

  return {
    presets
  };
}

而且效果很好。

【讨论】:

    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 2020-12-19
    • 2018-03-06
    • 2016-08-25
    • 1970-01-01
    • 2018-09-06
    • 2020-01-24
    • 1970-01-01
    相关资源
    最近更新 更多