Начальная производственная сборка создает код пакета, но все последующие сборки повторно используют старый пакет - PullRequest
0 голосов
/ 02 октября 2019

После добавления аутентификации с использованием паспорта и редукса в мой проект, каждый раз, когда я отправляю свой готовый производственный код на свой сервер, он повторно использует старую сборку файла комплекта. Если я использую один автономный сервер, у которого была гораздо более старая сборка проекта, он создает новый пакет, но любые последующие изменения этого не делают.

Сначала я подумал, что, возможно, веб-пакет вообще не запускается, поэтому я добавил определенный вызов в свой стартовый скрипт и удалил зависимости от devDependencies. В конечном итоге это ничего не изменило даже после того, как я увидел на сервере, что веб-пакет запускается и собирается. Ниже приведены сценарии, которые я настроил в package.json, а также мой webpack.config.

// Package.json

"scripts": {
    "start": "npm-run-all --parallel build:prod lift",
    "dev": "webpack --mode development && sails lift",
    "start:debug": "npm-run-all --parallel open:client debug",
    "open:client": "webpack-dev-server --mode development --open",
    "build": "npm run build:prod",
    "build:dev": "webpack --mode development",
    "build:prod": "webpack --mode production"
}

// Webpack.config.js

const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  entry: {
    entry: "./assets/src/index.js"
  },
  output: {
    path: __dirname + "/.tmp/public",
    filename: "bundle.js",
    publicPath: "/"
  },
  module: {
    rules: [
      {
        use: "babel-loader",
        test: /\.js$/,
        exclude: /node_modules/
      },
      {
        use: ["style-loader", "css-loader"],
        test: /\.css$/
      }
    ]
  },

  plugins: [
    new HtmlWebpackPlugin({
      template: "assets/src/index.html"
    })
  ]
};

Я знаю, что я не использовал лучшие практики для производственного веб-пакета, носейчас я просто хочу, чтобы это работало на моем сервере. Мой следующий шаг - настроить производственный веб-пакет, чтобы получить наименьший возможный пакетный файл, но сейчас мне нужно получить веб-пакет для перегруппировки ресурсов вместо использования старого файла. Я немного новичок в разработке javascript для front и back end, поэтому многое для меня в новинку, и я просто изначально настроил webpack как можно быстрее.

Обновление - решено Кажется, чтомоя проблема заключалась в том, что мой браузер кэшировал предыдущий файл bundle.js. В поисках долгосрочного решения для этого.

1 Ответ

0 голосов
/ 02 октября 2019

Вам необходимо удалить старую папку сборки перед повторной связкой новой. добавьте обработчик npm prepare для выполнения скрипта перед упаковкой

"scripts": {
    "prepare": "rm -rf /.tmp/public",
    "start": "npm-run-all --parallel build:prod lift",
    "dev": "webpack --mode development && sails lift",
    "start:debug": "npm-run-all --parallel open:client debug",
    "open:client": "webpack-dev-server --mode development --open",
    "build": "npm run build:prod",
    "build:dev": "webpack --mode development",
    "build:prod": "webpack --mode production"
}

или

"scripts": {
    "clean": "rm -rf /.tmp/public",
    ...
    "build": "npm run clean && npm run build:prod",
    "build:dev": "webpack --mode development",
    "build:prod": "webpack --mode production"
}
...