DJ_FRS
2 سال پیش توسط DJ_FRS مطرح شد
0 پاسخ

استفاده از 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 کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

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

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