Size: a a a

Webpack — русскоговорящее сообщество

2021 January 08

Д

Дмитрий in Webpack — русскоговорящее сообщество
Вот что у меня тут не так?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
3bl3gamer
всем привет. как правильно сделать и подрубить к проекту изоморфный модуль, чтоб вебпак для него не генерил мусорные файлы?

у меня щас есть модуль secondary:
//secondary/index.js 
export function initWeb() {
return 'ok'
}
export function initNode() {
return import('fs')
}

//secondary/package.json
{
 "type": "module",
 "browser": {"fs":false},
 "sideEffects": false
}

и есть проект main:
//main/src/index.js 
import { initWeb } from '../../secondary'
console.log(initWeb())

в main/ делаю
./node_modules/.bin/webpack-cli --mode production

получаю в dist'е:
993.js  main.js

в первом:
(self.webpackChunk=self.webpackChunk||[]).push([[993],{993:()=>{}}]);
во втором какая-то простыня, видать рантайм для подгрузки модулей.

если из initNode убрать import('fs'), получается как и положено один мелкий main.js:
(()=>{"use strict";console.log("ok")})();
package.json не в корне проекта игнорируется
источник

3

3bl3gamer in Webpack — русскоговорящее сообщество
Alex CherryTea
package.json не в корне проекта игнорируется
он в корне. в корне пакета secondary
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Дмитрий
Вот что у меня тут не так?
Тут все так
источник

Д

Дмитрий in Webpack — русскоговорящее сообщество
может потому что через докер запускается?
источник

3

3bl3gamer in Webpack — русскоговорящее сообщество
Alex CherryTea
package.json не в корне проекта игнорируется
и он точно НЕ игонрируется. потомоу что без него будет Error: Can't resolve 'fs'
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Дмитрий
может потому что через докер запускается?
Тогда ещё страннее, вы из одного проекта в другой модуль импортируете
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Так нельзя делать
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Дмитрий
может потому что через докер запускается?
Я не знаю
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Запустите не через докер и проверьте работает или нет
источник

3

3bl3gamer in Webpack — русскоговорящее сообщество
Alex CherryTea
Так нельзя делать
в смысле? а импорт из нодо_моудлей тогда как работает?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
3bl3gamer
в смысле? а импорт из нодо_моудлей тогда как работает?
В нод модулях лежат зависимости, и только через них проекты связанны. Если вы хотите локально разрабатывать модуль и сразу тестировать его в другом проекте воспользуйтесь командой npm link
источник

3

3bl3gamer in Webpack — русскоговорящее сообщество
Alex CherryTea
Так нельзя делать
ну ладно, дописал в package.json поля name и version, из main/ сделал npm install ../secondary. импорт заменил на import {initWeb} from 'secondary'. результат в точности тот же
источник

Д

Дмитрий in Webpack — русскоговорящее сообщество
Подскажите, кто сталкивался. Почему не срабатывает hot reload.

React + Docker
.......
if (!isProd) {
 config.devtool = 'cheap-module-eval-source-map';
 config.devServer.hot = true;
 config.devServer.host = '0.0.0.0';
 config.devServer.port = 80;
 config.devServer.watchOptions = {
   aggregateTimeout: 500,
   poll: true,
   ignored: /node_modules/,
 };
}
module.exports = config;
источник

Д

Дмитрий in Webpack — русскоговорящее сообщество
Вроде нашел в гугле, дописал хост и порт
источник

Д

Дмитрий in Webpack — русскоговорящее сообщество
{
 mode: 'development',
 devServer: {
   host: '0.0.0.0',
   port: 80,
   contentBase: '/usr/src/app/build',
   stats: 'minimal',
   compress: true,
   historyApiFallback: true,
   hot: true,
   watchOptions: { aggregateTimeout: 500, poll: true, ignored: /node_modules/ }
 },
 entry: { app: './src/index.js' },
 output: {
   path: '/usr/src/app/build',
   publicPath: '/',
   filename: '[hash].js'
 },
 resolve: { extensions: [ '.js', '.jsx' ] },
 module: { rules: [ [Object], [Object], [Object], [Object] ] },
 performance: { hints: false },
 optimization: {
   minimize: false,
   minimizer: [ [TerserPlugin], [OptimizeCssAssetsWebpackPlugin] ],
   moduleIds: 'hashed',
   chunkIds: 'named',
   splitChunks: {
     chunks: 'all',
     minSize: 50000,
     maxSize: 250000,
     maxInitialRequests: 15,
     cacheGroups: [Object]
   }
 },
 plugins: [
   HtmlWebpackPlugin {
     options: [Object],
     childCompilerHash: undefined,
     assetJson: undefined,
     hash: undefined,
     version: 4
   },
   MiniCssExtractPlugin { options: [Object] },
   DefinePlugin { definitions: [Object] }
 ],
 devtool: 'cheap-module-eval-source-map'
}
источник

Д

Дмитрий in Webpack — русскоговорящее сообщество
Вот консоль лог всего конфига, который експортируется
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Дмитрий
Вот консоль лог всего конфига, который експортируется
а как вы сделали вывод что хот реалоад не работает?
источник

Д

Дмитрий in Webpack — русскоговорящее сообщество
Alex CherryTea
а как вы сделали вывод что хот реалоад не работает?
Изменил компонент, ничего не поменялось на странице
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Дмитрий
Изменил компонент, ничего не поменялось на странице
реактовский?
источник