Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

yazonnile 20.04.2016 13:39

А в чем практический профит? Бабел подрубать не надо вручную?

kobezzza 20.04.2016 14:26

Цитата:

Сообщение от yazonnile (Сообщение 414562)
А в чем практический профит? Бабел подрубать не надо вручную?

Это само собой, но ещё утверждается, что вебпак осилит нормально круговые ссылки и научится Tree-shaking.

Лично я, использую для Tree-shaking замечательный сборщик Rollup, например, Snakeskin собирается именно им.

Webpack я использую для сборки проектов;
Rollup + Monic для сборки библиотек.

Safort 19.05.2016 00:48

Всем привет. Кто-нибудь юзает passport.js?

trikadin 20.05.2016 17:09

Цитата:

Сообщение от kobezzza
осилит нормально круговые ссылки

Я что-то пропустил? Он и сейчас нормально их осиливает -- у меня в проекте точно есть, причём сложные.

На вебпак 2 не переезжал пока -- что-то я ленивая задница в последнее время, и мне лень систему сборки на него переписать.

nerv_ 20.05.2016 19:10

Цитата:

Сообщение от Safort
Кто-нибудь юзает passport.js?

я лично не работал, но в проекте он у нас был

kobezzza 20.05.2016 19:44

Цитата:

Я что-то пропустил? Он и сейчас нормально их осиливает -- у меня в проекте точно есть, причём сложные.
Ну, просто весят исьюхи по этой теме у них, а ответ: починим в 2.0 :)

Safort 20.05.2016 21:57

nerv_,
пытаюсь заюзать его, да вот что-то не выходит. Думал, может тут кто-то шарит в нём.

Deff 20.05.2016 22:13

Кто поможет конкретней по данному вопросу, чот залип => http://javascript.ru/forum/ajax/6312...i-dannykh.html

cyber 20.05.2016 23:11

Цитата:

Сообщение от trikadin
Он и сейчас нормально их осиливает -- у меня в проекте точно есть, причём сложные.

у меня проблема с зависимостями типа
x.js
require("./y").d;

y.js
module.exports = {
  d: require("./d.js")
}


d.js
require("./x");

nerv_ 23.05.2016 23:47

Кто-нибудь в явном виде использует RxJS? Если да, пару слов, чем полезен этот инструмент и почему именно он. Офф сайт я читал если что)

Например, тут RxJS "сравнивают" с async

kobezzza 24.05.2016 01:26

Цитата:

Кто-нибудь в явном виде использует RxJS? Если да, пару слов, чем полезен этот инструмент и почему именно он. Офф сайт я читал если что)
Почему не Async, имхо, самая шикарная либа. А вообще, с переходом на async-await редко стал юзать такие либы.

cyber 24.05.2016 11:14

разное повидение array.sort в разных браузерах
https://jsfiddle.net/159mz60v/
походу баг
баг https://bugs.chromium.org/p/chromium...OS%20Modified#

рони 24.05.2016 11:50

cyber,
похоже Google Chrome берёт для ускорения элемент из середины массива и начинает сравнивать с ним, вот так этот элемент и перемещается в начало массива, функция сортировки же говорит, что все остальные элементы уже на своих местах.

cyber 24.05.2016 12:36

рони, у меня данные до сортировки примерно такие
[MF... ] Opt..
[MF... ] Org..
A4.._Pow..
A4.._Pow.._Test
...
после сортировки:
ATLAS....
[MF... ] Opt..
A4.._Pow..
A4.._Pow.._Test

он берет, но не с центра, а раньше где то 25% от начала и не возвращает на место, но это завист от размера данных при разных размерах по разному беред, у меня 4к данных берет где то 500+-
П.с это Quicksort скорее всего

рони 24.05.2016 13:04

cyber,
используй полную версию сортировки с возвратом -1 0 1 , если есть сомнения.

trikadin 24.05.2016 13:24

Цитата:

Сообщение от cyber
разное повидение array.sort в разных браузерах

Array#sort -- неустойчивая сортировка же (во всяком случае, не обязана быть таковой), поэтому она может менять местами элементы с одинаковыми ключами.

cyber 24.05.2016 13:45

рони, проблема в том что это внутри библиотеки за миллионом уровней абстракции от приложения)))
Я поправил с помощью API либы и костылей)
Но сам баг интересный, или исходя из того что пишет trikadin это может быть не баг

trikadin 25.05.2016 18:01

Цитата:

Сообщение от cyber
исходя из того что пишет trikadin это может быть не баг

Это не баг и есть. Гугли "stable sort javascript", если такое поведение для тебя недопустимо.

trikadin 25.05.2016 18:21

Цитата:

Сообщение от Rise
trikadin, что за неустойчивая, в чем смысл такой сортировки тогда?

На.

cyber 25.05.2016 22:37

trikadin, прикольно, только опять браузерный зоопарк, в одном так в другом так..

trikadin 26.05.2016 17:45

Цитата:

Сообщение от cyber
trikadin, прикольно, только опять браузерный зоопарк, в одном так в другом так..

Ну да, зоопарк, но в данном случае вполне оправданный. Специализация не указывает разработчикам JS-движков, какой конкретно алгоритм сортировки использовать. Если ничего не изменилось за полгода (когда я в последний раз это выяснял), то в V8 юзают quicksort (которая неустойчивая), в SpiderMonkey (или как он там теперь называется) -- merge sort (устойчивая). Вот хорошая статья на тему сортировки в V8.

Подытог: не надо рассчитывать на устойчивость сортировки в различных браузерах или javascript-движках. Если нужна устойчивая сортировка -- реализуйте её сами или используйте готовую библиотеку, тысячи их.

P. S. И почитайте Кормена "Алгоритмы", ну стыдно программисту не знать таких вещей.
P. P. S. Как правило, неустойчивая сортировка быстрее и жрёт меньше памяти, а quicksort так и вовсе считается самым быстрым сортирующим алгоритмом, поэтому выбор гугла мне понятен. Не припомню кейзов, чтобы мне нужна была устойчивая сортировка.

cyber 26.05.2016 19:05

Цитата:

Сообщение от trikadin
P. S. И почитайте Кормена "Алгоритмы", ну стыдно программисту не знать таких вещей.

У нас было в универе все базовое об алгоритмах, походу я пропустил про неустойчивую сортировку и вышло боком, кормена читал тоже частями, и как то это упустил, нужно будет полностью прочитать

cyber 30.05.2016 13:43

Я не совсем пойму System.import это с es7 или просто синтаксис вебпак 2?

destus 30.05.2016 13:54

Цитата:

Сообщение от cyber (Сообщение 417991)
Я не совсем пойму System.import это с es7 или просто синтаксис вебпак 2?

С ES6.

cyber 30.05.2016 14:06

destus, спасибо, понятно почему я в еs7 нечего не нашел)

trikadin 30.05.2016 17:24

cyber, это лютый драфт программной загрузки модулей, предполагаемый для использования в ES.
https://github.com/whatwg/loader/

cyber 31.05.2016 10:36

trikadin, я так понимаю это как с обычным импортом?
Уже часть стандарта но все хз как это заимплементить в браузере?)

kobezzza 31.05.2016 11:06

Цитата:

Уже часть стандарта но все хз как это заимплементить в браузере?)
В ночных сборках появилась реализация, скрипты с модульной системой должны иметь атрибут module (у тега script), а модули грузятся синхронно в рамках скрипта, так что в ES 2018 ждёмс.

destus 31.05.2016 13:01

Цитата:

так что в ES 2018 ждёмс.
Также как и ждали async/await в ES2016? :)

cyber 02.06.2016 12:00

как вебпаком подрубать sourcemap от библиотеки?
Т.е я подключаю библиотеку по которой прошлись uglify, и рядом лежат source map,
как можно использовать эти соурс мапы ?

trikadin 02.06.2016 17:05

Цитата:

Сообщение от cyber
Уже часть стандарта но все хз как это заимплементить в браузере?)

Тут как раз наоборот) Не часть стандарта, но скоро будет имплементация в браузерах :D

cyber 03.06.2016 14:41

Как в webStorm/intellij или другое ide от jetBrains сделать push тэга, в git > repository > tag можно его создать и он будет локально, но как его пушнуть с ide?

bes 10.06.2016 18:26

никто не пытался заюзать grunt нестандартным образом?
скажем, если исходники в каталоге src, а node, nmp, grunt, Gruntfile.js, package.json в каком-нибудь другом (чисто локальное портативное использование с переносом Gruntfile.js и package.json в произвольный каталог)
без правок батников и кода (если юзать под виндой), как я понимаю, не обойтись, может кто уже выполнил эту работу :)

trikadin 10.06.2016 19:31

bes, во-первых, некрофилией занимаешься, с грантом-то. Во-вторых, покажи примерную файловую структуру.

cyber 10.06.2016 22:35

bes, у меня в проекте много под проектов и сделал так в корне приложения лежит gulpRuner который ищет gulpfile.js и запускает их каждый gulpfile в отдельно процессе (через cluster ).
потом так:
-проект1/..куча каталогов
-- gulpfile.js
---scripts
----webpack.config и входные файлы для этого проекта

-проект2/..куча каталогов
-- gulpfile.js
---scripts
----webpack.config и входные файлы для этого проекта
и т.д...

все gulpfile.js одинаковые, они расширяются базовым конфигом которые лежит в главном node_modules, и отличаются по минимуму. если нужно собрать все я использую gulpRunner или просто галп в нужно проекте.

П.с может не так тебя понял, тогда сори)

bes 10.06.2016 23:21

Цитата:

Сообщение от trikadin
bes, во-первых, некрофилией занимаешься, с грантом-то. Во-вторых, покажи примерную файловую структуру.

grunt умер что ли уже? :)

trikadin, cyber, например, при помощи grunt нужно склеить содержимое test1.js и test2.js, результат поместить в test.js
Код:

project_root
- dist
--  test.js появится здесь
- src
--  test1.js
--  test2.js
- ctr
--  grunt
---  node_modules
----    grunt
----    grunt-cli
----    ...
---  Gruntfile.js
---  package.json


cyber 10.06.2016 23:34

Цитата:

Сообщение от bes
grunt умер что ли уже?

я начал с гапла сразу)
ну если хочешь что бы у тебя был например универсальный инструмент, делаешь какой то кофиг, закидуешь на github например, и потом подключаешь в package.json
gulpConfig.js
module.exports = (gulp, params) => {
  gulp.task("join", () => {
    let files = fs.readdir(params.context);
    .... join

    fs.writeFile(params.join.output, output);
   });
}


gulpfile.js
let baseConfig = require("gulpConfig");
baseConfig( {
  context: __dirname,
  join:{
   output: "jon.test.js"
  }
} )


у меня это выглядит примерно так

destus 11.06.2016 00:23

cyber,
Непонятно зачем в context передавать __dirname, если в задаче было сказано что gruntfile/ gulpfile и исходники проекта в разных папках.

cyber 11.06.2016 01:44

destus, я на сколько я понял bes, хочет уневерсальный конфиг который не зависит от проекта, или я его понял не так

bes 11.06.2016 12:00

Цитата:

Сообщение от cyber
destus, я на сколько я понял bes, хочет уневерсальный конфиг который не зависит от проекта, или я его понял не так

поясню подробнее

в вышеуказанной структуре каталогов
package.json
{
  "name": "test_project",
  "version": "0.0.1",
  "devDependencies": {
    "grunt": "^1.0.1",
    "grunt-cli": "^1.2.0",
    "grunt-contrib-concat": "^1.0.1"
  }
}


Gruntfile.js
module.exports = function (grunt) {
	grunt.initConfig({
		concat: {
			test_target: {
			//нужно будет правильно указать пути
			  src: ['src/test1.js', 'src/test2.js'],
			  dest: 'dist/test.js',
			},
		},
	});
	grunt.loadNpmTasks("grunt-contrib-concat");
	grunt.registerTask("default", ["concat"]);
};


нужно добиться, например, того, чтобы из каталога с файлом ctr/grunt/Gruntfile.js просто вызывать команду grunt из консоли или добиться какого-нибудь другого работоспособного вызова
возможно test_project/ctr/grunt/node_modules/.bin нужно добавить в path, чтобы вызывать grunt.cmd оттуда из произвольного каталога, но этого недостаточно для того, чтобы всё получилось
в общем, попробовав несколько вариантов и не добившись положительного результата, до углублённого изучения кода grunt-a и его правки, спрашиваю, велосипедил ли кто-нибудь уже так? :)

сама мысль заюзать grunt из дополнительного каталога ctr (каталога для сборщиков) возникла на основе таких мыслей:
- есть отдельная сущность - сборщик, поэтому надо выделить ей отдельный каталог, внутри этого каталога для каждого сборщика выделить по отдельному каталогу
сборщик использует файлы в каталоге src, чтобы сформировать содержимое каталога dist
- довольно убого и нелогично выглядит, когда все конфиги, build-файлы и т.п. лежат в куче среди собственно исходных файлов или рядом с ними, и, чем больше таких файлов, тем более убого всё это выглядит
например, в случае с grunt
это могло бы выглядеть так
project_root
- dist
- src
--  test1.js
--  test2.js
- node_modules
- Gruntfile.js
- package.json

ещё хуже так, так как дополнительные файлы и каталоги не относятся к исходникам, для которых выделен отдельный каталог src
project_root
- dist
- src
--  test1.js
--  test2.js
--  node_modules
--  Gruntfile.js
-- package.json


Часовой пояс GMT +3, время: 17:35.