راکت

استفاده از dynamic import require در webpack و babeljs

بدون پاسخ

با سلام و درود من بصورت معمول از babeljs استفاده میکنم توی این حالت میاد و کد های منرو چه بصورت minify شده چه معمولی ساختار دایرکتوری هارو حفظ میکنه و همه فایل ها چه اونهایی که import نشده باشند رو هم کامپایل میکنه اما من میخوام از webpack استفاده کنم همه چیز اوکی هست مشکل اونجایی های که میاد فایل ها رو باندل میکنه و ساختار دایرکتوری هارو حفظ نمیکنه و مشکل اونجایی حاد میشه که من dynamic import استفاده کرده باشم اونجوری دیگه اون فایل ها رو لود نمیکنه
webpack.config.js

const path = require("path");
const Dotenv = require("dotenv-webpack");
const nodeExternals = require("webpack-node-externals");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");

module.exports = {
  mode: "development",
  entry: "./src/index.js",
  target: "node",
  plugins: [new Dotenv(), new CleanWebpackPlugin()],
  externals: [nodeExternals()],
  watch: true,
  module: {
    rules: [
      {
        test: /\?js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
        },
      },
    ],
  },
  output: {
    filename: "index.js",
    path: path.resolve(__dirname, "dist"),
  },
};

dynamic import file

"use strict";

const fs = require("fs");
const path = require("path");
const Sequelize = require("sequelize");
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || "development";
const config = require("../config/config")[env];
const db = {};

let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  sequelize = new Sequelize(
    config.database,
    config.username,
    config.password,
    config
  );
}

fs.readdirSync(__dirname)
  .filter((file) => {
    return (
      file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"
    );
  })
  .forEach((file) => {
    const model = require(path.join(__dirname, file))(
      sequelize,
      Sequelize.DataTypes
    );
    db[model.name] = model;
  });

Object.keys(db).forEach((modelName) => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;
DJ_FRS
DJ_FRS
@solat9131569602
ثبت پرسش جدید

پاسخ‌ها

0

هنوز پاسخی ثبت نشده

اولین نفری باشید که به این پرسش کمک می‌کند و مسیر حل مشکل را باز می‌کند.

اولین پاسخ را بنویسید

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام