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

Обсуждения webpack, лоадеров, плагинов и сборок Правила: http://bit.ly/our_etiquette См. также: @rollup_ru, @react_js, @vscode_ru, @macos_ru, @js_ru

974 members

Архив канала @webpack_ru 14 сентября 2017 г.

08:58:04 ДП
User 230966911
Так, а в npm/webpak нет возможности использовать две версии одного пакета?

Нашел по теме только этот Issue с обсуждением https://github.com/npm/npm/issues/5499

Самый простой вариант это сделать зеркало старой версии, обозвать его как namePackage-legacy?
github.com/npm/npm/issues/5499
Currently a package can have only a single version of a dependency defined. I have a need to install multiple versions of a dependency at once. This is a subset of aliasing features that were rejec...
12:32:02 ПП
User 215655868
Привет. А есть какой нить плагин, который такие импорты
import {a, b} from 'module'
преобразует в
const a = require('module/a')
const a = require('module/b')
?
12:35:09 ПП
User 7481297
User 215655868
Привет. А есть какой нить плагин, который такие импорты
import {a, b} from 'module'
преобразует в
const a = require('module/a')
const a = require('module/b')
?
так это разные вещи же, не всегда можно так сделать
12:35:31 ПП
User 7481297
некоторые авторы библиотек дают такую возможность
12:36:05 ПП
User 7481297
и разные пути бывают
12:36:17 ПП
User 7481297
типа module/a или module/lib/a
12:36:27 ПП
User 7481297
в Immutable вообще нельзя так сделать
12:36:35 ПП
User 7481297
а Draft.js, например, названия могут не совпадать
12:37:46 ПП
User 7481297
import { convertToRaw } from 'draft-js', а если напрямую, то import convertToRaw from 'draft-js/lib/convertFromDraftStateToRaw'
12:38:10 ПП
User 7481297
ну или const convertToRaw = require('draft-js/lib/convertFromDraftStateToRaw')
12:38:26 ПП
User 137081076
Ребята подскажите, у меня есть папка app/asserts/images/img.jpg  в вебпаке прописал: test: /\.(jpg|png|svg)$/,
                    loader: 'file-loader',
                    options: {
                        name: 'assets/images/[name]-[hash].[ext]'
                    },
12:38:35 ПП
User 137081076
Но картинки битые
12:39:00 ПП
User 137081076
когда прописываю путь require(../assets/images/img.jpg)
12:39:05 ПП
User 137081076
путь правильный
12:39:37 ПП
User 215655868
User 7481297
некоторые авторы библиотек дают такую возможность
ок, спсибо!)
12:40:46 ПП
User 7481297
User 137081076
Ребята подскажите, у меня есть папка app/asserts/images/img.jpg  в вебпаке прописал: test: /\.(jpg|png|svg)$/,
                    loader: 'file-loader',
                    options: {
                        name: 'assets/images/[name]-[hash].[ext]'
                    },
file-loader просто кладёт файл в указанный путь с указанным названием, а в бандл возвращает этот путь
12:40:50 ПП
User 215655868
User 7481297
некоторые авторы библиотек дают такую возможность
мне для материала нужно, нашел вот такой плагин
https://github.com/umidbekkarimov/babel-plugin-direct-import
github.com/umidbekkarimov/babel-plugin-direct-import
babel-plugin-direct-import - Babel plugin to cherry pick imports of es6 modules
12:41:26 ПП
User 7481297
то есть скленный ещё с значением "output.publicPath" в конфиге вебпака
12:42:53 ПП
User 7481297
то есть если например у тебя publicPath: '/some/dir/`, а ты делаешь в file-loader путь 'assets/images/[name]-[hash].[ext]', то в бандле у тебя будет путь '/some/dir/assets/images/myimage-0123124395de.jpg'
12:43:36 ПП
User 7481297
и соответственно твой сервер должен уметь из папки, в которую file-loader положил этот файл, сёрвить статичный контент
12:43:37 ПП
User 137081076
сейчас гляну что сделал
12:45:16 ПП
User 137081076
Делать статическую папку?
12:45:43 ПП
User 137081076
написал publicPath: '/', но нифига
12:47:29 ПП
User 7481297
короче вот если у тебя

output: {
  path: './dist',
  publicPath: '/'

то с твоим конфигом file-loader кладёт этот файл в ./dist/assets/images
12:47:54 ПП
User 7481297
а бандлу говорит, что файл будет доступен по адресу /assets/images/...
12:48:18 ПП
User 7481297
поэтому надо, чтобы сервер на запросы из /assets/images отдавал файлы из ./dist/assets/images
12:51:08 ПП
User 7481297
в экспрессе это было бы (если помню правильно)

app.use('/assets', express.static('./dist/assets'))
12:53:13 ПП
User 137081076
Ну немного разобрался
12:53:29 ПП
User 137081076
Просто я dist собирал во время сборки, на продакшне
12:53:39 ПП
User 137081076
а так он не собирается
12:54:29 ПП
User 137081076
в режиме dev мне делать статику на папку в экспрессе?
12:55:06 ПП
User 7481297
ну вообще в dev можно использовать webpack-dev-server
12:55:17 ПП
User 7481297
тогда он да, не будет собирать папку dist
12:55:26 ПП
User 137081076
у меня webpack-dev-middleware
12:55:49 ПП
User 7481297
ща я погуглю, как оно работает 😄
12:56:01 ПП
User 137081076
да почти так же
12:57:13 ПП
User 7481297
не ну вообще он тоже должен отдавать
12:57:18 ПП
User 7481297
без сборки dist
12:57:44 ПП
User 7481297
сделай тогда, чтобы publicPath совпадал, что ли
12:57:58 ПП
User 7481297
а конфиге вебпака и webpack-dev-middleware
12:58:44 ПП
User 137081076
output: {
    filename: '[name].bundle.js',
      publicPath: '/',
        path: path.resolve(__dirname, 'dist'),
  },
12:58:51 ПП
User 137081076
стоит
12:59:14 ПП
User 7481297
а в dev-middleware?
12:59:56 ПП
User 137081076
в express?
01:00:14 ПП
User 7481297
ну у них вот описание тут https://github.com/webpack/webpack-dev-middleware
github.com/webpack/webpack-dev-middleware
webpack-dev-middleware - A development middleware for webpack
01:00:39 ПП
User 7481297
и там написано

// publicPath is required, whereas all other options are optional

и

publicPath: "/assets/",
 // public path to bind the middleware to
 // use the same as in webpack
01:03:25 ПП
User 137081076
Я делаю compiler из ./webpack.config.js
01:04:04 ПП
User 137081076
крч, уже запутался, наверное сделаю статику на папку public
01:07:05 ПП
User 7481297
ну вот после hot: true допиши новую строчку publicPath: '/assets'
01:07:40 ПП
User 7481297
(или со слэшем на конце, не знаю)
01:08:34 ПП
01:08:36 ПП
User 7481297
сорян
01:08:41 ПП
User 137081076
Дык написал же в самом webpack.config
01:08:41 ПП
User 7481297
у тебя же publicPath: '/'
01:08:56 ПП
User 137081076
cannot /get будет
01:09:00 ПП
User 7481297
так там же написано, что надо написать publicPath, совпадающий с тем, что в конфиге вебпака
01:09:17 ПП
User 137081076
написал, но все равно
01:11:03 ПП
User 7481297
ща попробую, самому интересно стало
01:36:06 ПП
User 7481297
User 137081076
написал, но все равно
https://github.com/egorovli/webpack-dev-middleware-test
github.com/egorovli/webpack-dev-middleware-test
Contribute to webpack-dev-middleware-test development by creating an account on GitHub.
01:45:31 ПП
User 137081076
Module parse failed: ...app\assets\images\OovrNGFmn4M.jpg Unexpected character '�'
01:45:41 ПП
User 137081076
Это с чем может быть связано?
01:46:32 ПП
User 7481297
мб вебпак не применяет твоё правило для file-loader'а
01:48:17 ПП
User 7481297
минимально должно быть так

{
        test: /\.jpg$/,
        loader: 'file-loader',
        options: {
          name: 'assets/images/[name]-[hash].[ext]'
        }
      }
01:48:22 ПП
User 97081120
ну так у тебя написано
01:48:32 ПП
User 97081120
заинклудить src/assets
01:48:40 ПП
User 97081120
а ругается на app/assets
01:48:55 ПП
User 7481297
это у меня написано, потому что у меня лежит там)
01:49:01 ПП
User 97081120
еще раз
01:49:08 ПП
User 97081120
ругается он на файл лежащий в апп
01:49:09 ПП
User 7481297
я ж не знаю, где у Алексея там что лежит
01:49:10 ПП
User 97081120
и ниипет
01:49:17 ПП
User 97081120
я не тебе
01:49:19 ПП
User 7481297
и что он написал в webpack.config.js
01:49:19 ПП
User 97081120
а алексею)
01:49:36 ПП
01:49:40 ПП
User 97081120
репка-то твоя
01:49:45 ПП
User 7481297
можешь попробовать убрать строчку include
01:49:47 ПП
01:49:57 ПП
User 7481297
или написать там /app\/assets/
01:50:22 ПП
User 137081076
во блин
01:50:29 ПП
User 137081076
как убрал заработал
01:51:11 ПП
User 137081076
Похоже вся беда была в url-loader
01:51:33 ПП
User 137081076
Благодарствую вам
01:53:41 ПП
User 7481297
та не за что
01:53:50 ПП
User 7481297
почитай доки вебпака, чтобы понимать, зачем нужен include/exclude, что ли
01:55:36 ПП
User 137081076
Почитаю
08:48:00 ПП
User 215655868
Ребят, есть плагин, но нет инструкции как его подключить в вебпаки, данный пример для .babelrc, как в вбпк его так же подлючить?
08:48:56 ПП
User 215655868
у меня уже есть плагины, но они просто перечисленны как строки, а как в плагин прокинть еще и параметры для него?
08:51:47 ПП
User 50263515
User 215655868
у меня уже есть плагины, но они просто перечисленны как строки, а как в плагин прокинть еще и параметры для него?
Тут что-то похожее на нужное тебе https://webpack.js.org/plugins/loader-options-plugin/