intregal

About

Username
intregal
Joined
Visits
2,822
Last Active
Roles
Member

Activity

  • Evgeniy

    Не могли бы Вы посмотреть тестовый пример и указать мне на ошибки которые я допустил. В идеале мне нужно чтобы работала локализация и отладка из visual studio.
    Ссылка на пример: https://yadi.sk/d/pMj2X5he3Q2DH3

    November 24
    • intregal
      intregal
      я не использую жетовскую локализацию, но помню, что в ts версии была бага в коде. надо было вместо `import Polyglot from 'node-polyglot' ` указать `import * as Polyglot from 'node-polyglot'` (или наоборот). ваш код завтра смогу просмотреть.
      насчет отладки - ставьте брейкпоинты ПОСЛЕ начала работы. т.е. сперва начните работу, поставьте точку отладки и перезагрузите браузер.
    • Evgeniy
      Evgeniy
      По поводу бага понял, попробую, спасибо. А вот с отладкой так и делаю как Вы говорите, к сожалению значения переменных не отображаются как в версии webix-jet до 1.0.0. Там отладка работала идеально. Спасибо за столь быстрый ответ!
    • Evgeniy
      Evgeniy
      Действительно, в ts версии jet баг с импортом полиглота... Печально конечно.
    • intregal
      intregal
      https://yadi.sk/d/PZLZ5ErD3Q2fEQ
      подправил jet/plugins/Locale.ts
      поменял окончания с js на ts (т.е. полностью перешел на typescript)
      лучше на typescript работать, тогда и дебажить удобнее, и ошибки легче контролировать. да, чуть более занудна, но того стоит. тем более, что на es6 пишете.
      за отправную точку в webpack надо принимать не tsc output, а непосредственно файлы в Scripts.
      некоторые мелкие подправки сделал.
    • Evgeniy
      Evgeniy
      Большое спасибо за помощь! Пример попробовал, всё работает. Согласен с Вами по поводу того, что нужно использовать typescript.
  • Evgeniy
    1. Пример с использованием загрузки webix-jet с без npm и с использованием webpack.
      Насколько я понимаю, в этом случае необходимо сначала отработать typeScript, а уже на получившиеся файлы настраивать webpack?
      В каталог "wwwroot/tsbuild" генерируются файлы с помощью typescript, согласно настройкам в tsconfig.json.
      После этого запускаю webpack. Webpack генерирует файл в каталог "wwwroot/app". оттуда я его уже подключаю в index.html.
      Тестовый пример собирается без ошибок, запускается в internet explorer. Но он без возможности локализации. И без отладки в visual studio(в браузере отладка работает).
      Как только я добавляю использование плагина для локализации (app.use(jet.plugins.Locale, null);) - строка 18 файла "Scripts/app.js" в файле "Scripts\jet\plugins\locale.ts" возникает ошибка.
      Плагину не удаётся загрузить библиотеку polyglot. Я пробовал её скопировать в разные места проекта но так положительного результата и не добился.
    November 24
  • Evgeniy

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

    Я сделал 2 примера для использования webix-jet в Visual studio.

    1. Пример с использованием загрузки webix-jet с помощь npm и использованием только webpack.
      Проект запускается в Internet Explorer, но отладка из Visual Studio не работает.
      Затем подключаю плагин для использования локализации. В internet explorer при вызове app.render() в плагине происходит ошибка. В остальных браузер такой ошибки нет.
      Не могли бы Вы в этом проекте мне указать на ошибки, из-за которых не работает отладка в Visual studio, и на ошибку из-за которой не отрабатывается выставление языка? Вот ссылка на проект: https://yadi.sk/d/LplgrqV53Q2Co6
    November 24
  • Evgeniy

    У меня никак в плагине Locale не подключается библиотека Polyglot. Строка кода import Polyglot from "node-polyglot/build/polyglot"; не работает... Полиглот лежит в node_modules и в wwwroot. Так же как Вы и делали в тестовом проекте.

    November 21
    • intregal
      intregal
      если честно, то сам перешел полностью на вебпак. работает на ура.
      а если все таки хотите использовать амд, то должны все внешние зависимости (polyglot, routie) загружать вручную и подправить код жетовский.
    • Evgeniy
      Evgeniy
      Понял, Вас. Спасибо за ответ!Тогда тоже пробую перейти на вебпак.
    • Evgeniy
      Evgeniy
      А Вас очень затруднит выложить версию проекта под webpack для студии? У меня честно говоря Ваш прошлый проект не собирается... В любом случае большое спасибо!
    • Evgeniy
      Evgeniy
      Здравствуйте!Еще раз спасибо за помощь!У меня проект начал работать. Но осталась не решенной проблема поддержки internet explorer. А у Вас в internet explorer работает приложение?
    • intregal
      intregal
      да, у меня работает без проблем.
    • Evgeniy
      Evgeniy
      А не могли бы Вы настройки для webpack дать посмотреть?
    • Evgeniy
      Evgeniy
      У меня вот такие
      const path = require('path');

      var WebpackNotifierPlugin = require('webpack-notifier');
      // Плагин для очистки выходной папки (bundle) перед созданием новой
      const CleanWebpackPlugin = require('clean-webpack-plugin');
      const outFolder = "wwwroot/app";

      module.exports = {
      entry: {
      "app" : "./Scripts/app.js",
      "loginPage" : "./Scripts/jet-views/loginPage.js",
      "main" : "./Scripts/jet-views/main.js",
      "langMenu" : "./Scripts/jet-views/modules/langMenu.js"
      },
      output: {
      path: path.join(__dirname, outFolder),
      filename: "[name].js"
      },
      resolve: {
      extensions: ['.ts', '.webpack.js', '.web.js', '.js'],
      //extensions: [".tsx", ".ts", ".js"],
      modules: ["./Scripts", "./node_modules"],
      alias: {
      "jet-views": path.resolve(__dirname, 'Scripts/jet-views'),
      "jet-locales": path.resolve(__dirname, 'Scripts/jet-locales')
      }
      },
      plugins: [
      new CleanWebpackPlugin([outFolder]),
      new WebpackNotifierPlugin()
      ],


      //devtool: 'cheap-module-eval-source-map',
      devtool: 'source-map',
      module: {
      loaders: [
      {
      test: /\.ts$/,
      loader: 'awesome-typescript-loader?configFileName=tsconfig.awesome.json'
      }
      ]
      }
      };
    • intregal
      intregal
      в entry оставьте только "app". остальное лишнее.
    • intregal
      intregal
      webpack.config.js одного проекта
      ~~~
      const fs = require("fs");
      const path = require("path");
      const webpack = require("webpack");
      const htmlWebpackPlugin = require("html-webpack-plugin");
      const webpackNotifier = require("webpack-notifier");
      const faviconsWebpackPlugin = require('favicons-webpack-plugin');
      const { TsConfigPathsPlugin } = require('awesome-typescript-loader');
      const ExtractTextPlugin = require("extract-text-webpack-plugin");
      const ChunkManifestPlugin = require('chunk-manifest-webpack-plugin');
      const WebpackChunkHash = require('webpack-chunk-hash');
      const CleanWebpackPlugin = require("clean-webpack-plugin");

      function isExternal(module, _folder) {
      if (typeof module.userRequest === 'string') {
      const _file = module.userRequest.split('!').pop();
      if (_folder) {
      if (typeof _folder === "string") {
      return _file.startsWith(_folder);
      } else if (_folder.length) {
      for (let i = 0; i < _folder.length; i++) {
      if (_file.startsWith(_folder[i])) {
      return true;
      }
      }
      }
      } else {
      return _file.match(/(node_modules|b‌​ower_components|libr‌​aries)/);
      }
      }
      return false;
      }

      module.exports = env => {
      const isProduction = !!(env && !!env.production)
      const wwwroot = path.join(__dirname, "wwwroot")
      const sourcePath = path.join(__dirname, "source")
      const scriptsPath = path.join(sourcePath, "Scripts")
      const node_modules = path.join(__dirname, "node_modules")
      const jet_modules = path.join(scriptsPath, "Jet")
      const files_path = path.join(wwwroot, "files")

      const pathsToClean = [
      files_path
      ]

      const cleanOptions = {
      verbose: true,
      dry: false
      }

      return {
      cache: true,
      entry: {
      app: path.join(scriptsPath, "main.ts")
      },
      output: {
      path: files_path,
      filename: isProduction ? "[chunkhash].js" : "[name].[chunkhash].js",
      chunkFilename: '[name].[chunkhash].js'
      //publicPath: "./files/"
      },
      resolve: {
      plugins: [
      new TsConfigPathsPlugin()
      ],
      extensions: ['.ts', '.js'],
      alias: {
      "jet-views": path.join(scriptsPath, "views"),
      "jet-locales": path.join(scriptsPath, "locales"),
      "app-images": path.join(sourcePath, "images")
      },
      symlinks: false
      },
      plugins: [
      new CleanWebpackPlugin(pathsToClean, cleanOptions),
      new webpack.optimize.CommonsChunkPlugin({
      name: "jet",
      minChunks: function (module) {
      return isExternal(module, [node_modules, jet_modules])
      }
      }),
      new webpack.optimize.CommonsChunkPlugin({
      name: "vendor",
      minChunks: function (module) {
      return isExternal(module, [node_modules])
      }
      }),
      new webpack.optimize.CommonsChunkPlugin({
      name: "manifest"
      }),
      new webpackNotifier(),
      new ExtractTextPlugin({
      filename: isProduction ? "[contenthash].css" : "[name].[contenthash].css"
      }),
      new htmlWebpackPlugin({
      inject: "body",
      cache: !isProduction,
      hash: false,
      title: "hotec",
      isDebug: JSON.stringify(!isProduction),
      filename: path.join(wwwroot, "index.html"),
      template: path.join(sourcePath, "index.html"),
      minify: isProduction && {
      collapseWhitespace: true,
      collapseInlineTagWhitespace: true
      }
      })
      ].concat(isProduction ? [
      new faviconsWebpackPlugin({
      logo: path.join(sourcePath, "images", "fav-logo.png"),
      prefix: 'fav-[hash]/',
      title: "hotec",
      icons: {
      android: true,
      appleIcon: true,
      appleStartup: true,
      coast: true,
      favicons: true,
      firefox: true,
      opengraph: true,
      twitter: true,
      yandex: true,
      windows: true
      }
      }),
      new webpack.optimize.UglifyJsPlugin({
      test: /\.js$/,
      compress: {
      warnings: false
      },
      mangle: {
      props: {
      regex: /^\_[^\_]/
      }
      }
      })
      ] : []),
      devtool: isProduction ? "" : "source-map",
      module: {
      rules: [
      {
      test: /\.jade$/,
      use: {
      loader: 'pug-loader',
      }
      },
      {
      test: /\.js$/,
      use: ["source-map-loader"],
      enforce: "pre"
      },
      {
      test: /\.ts$/,
      use: ["awesome-typescript-loader"]
      },
      {
      test: /\.css$/,
      use: ExtractTextPlugin.extract({
      fallback: "style-loader",
      use: "css-loader"
      })
      },
      {
      test: /\.(woff.?|eot|ttf)$/,
      use: {
      loader: 'file-loader',
      options: {
      name: (isProduction ? '[hash].[ext]' : '[name].[hash].[ext]')
      }
      }
      },
      {
      test: /\.(png|svg|jpe?g)$/,
      use: [
      {
      loader: 'file-loader',
      options: {
      name: (isProduction ? '[hash].[ext]' : '[name].[hash].[ext]')
      }
      },
      {
      loader: "img-loader",
      options: {
      enabled: isProduction
      }
      }
      ]
      }
      ]
      }
      }
      }
      ~~~
    • Evgeniy
      Evgeniy
      Спасибо за webpack.config.js! А не поделитесь ещё файлом package.json? У меня ещё есть сомнения, что и в package.json не всё гладко...
    • intregal
      intregal
      package.json

      {
      "name": "hotec",
      "version": "1.0.0",
      "description": "hotec",
      "main": "index.js",
      "dependencies": {
      "@types/node-polyglot": "^0.4.30",
      "@types/routie": "^0.3.27",
      "node-polyglot": "^2.2.2",
      "webix": "^5.0.0",
      "webix-routie": "^0.4.0"
      },
      "devDependencies": {
      "awesome-typescript-loader": "^3.3.0",
      "babel-register": "^6.26.0",
      "chunk-manifest-webpack-plugin": "^1.1.2",
      "clean-webpack-plugin": "^0.1.17",
      "css-loader": "^0.28.7",
      "extract-text-webpack-plugin": "^3.0.2",
      "favicons-webpack-plugin": "0.0.7",
      "file-loader": "^1.1.5",
      "html-webpack-plugin": "^2.30.1",
      "img-loader": "^2.0.0",
      "loader-utils": "^1.1.0",
      "preload-image-loader": "^1.0.0",
      "pug": "^2.0.0-rc.4",
      "pug-loader": "^2.3.0",
      "source-map-loader": "^0.2.3",
      "style-loader": "^0.19.0",
      "typescript": "^2.6.1",
      "url-loader": "^0.6.2",
      "webpack": "^3.8.1",
      "webpack-chunk-hash": "^0.5.0",
      "webpack-notifier": "^1.5.0",
      "wrapper-webpack-plugin": "^1.0.0"
      },
      "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
      "build": "set NODE_ENV=production&& webpack -p --env.production",
      "development": "set NODE_ENV=development&& webpack"
      },
      "keywords": [],
      "author": "",
      "license": "ISC"
      }
    • Evgeniy
      Evgeniy
      Большое спасибо Вам за помощь! К сожалению у меня так и не получилось, чтобы приложение открывалось в Internet Explorer при использовании IISExpress. При выполнении скрипта, который генерируется с помощью webpack происходит ошибка: "JavaScript critical error at line 120, column 1 in http://localhost:2181/app/app.js\n\nSCRIPT1002: Синтаксическая ошибка".
      А вот 120-я строчка из файла:
      class JetView extends __WEBPACK_IMPORTED_MODULE_0__JetBase__["a" /* JetBase */] {

      Ошибка происходит на слове class. В других браузерах(Chrome, Yandex, Mozilla) приложение работает.

      Так же мне не удалось сделать нормальную отладку из VisualStudio. В браузерах, с помощью инструментов разработчика код отлаживается, а вот из студии никак...

      Отличие в проектах между Вашим и моим в том, что webix-jet я использую тот, который в node_modules лежит, то есть прописан в package.json.

      Мне уже и не удобно совсем, что отнимаю у Вас столько времени. Но всё же хочу Вас попросить о тестовом проекте для Visual Studio с использованием webix-jet. Мне очень важно отлаживаться прямо из студии, а не из браузера.

      Заранее Вам громадное спасибо!!!!!
    • Evgeniy
      Evgeniy
      Забыл сказать, что Internet Explorer 11 версии, Visual Studio 2017 и OS - Windows 10. Может дело в этом...
    • intregal
      intregal
      видимо вы компилируете как es2015+ (т.е. es6 и выше), а надо es5. в tsconfig -> compilerOptions -> target поменяйте на es5
    • intregal
      intregal
      сейчас обратил внимание, что webix-jet через npm используете.
      в этом случае вы должны в webpack.config.js babel-loader настроить.
      https://github.com/babel/babel-loader
    • Evgeniy
      Evgeniy
      Здравствуйте!Большое спасибо за помощь!Подключение babel помогло!В internet explorer приложение загружается. Но отладка работает не очень корректно. Сейчас хочу попробовать подключать jet не через npm.
    • Evgeniy
      Evgeniy
      А вы не могли бы свой tsconfig показать?
    • intregal
      intregal
      {
      "compileOnSave": false,
      "include": [
      "./source/Scripts"
      ],
      "exclude": [
      "./source/Scripts/**/*.exclude.*"
      ],
      "compilerOptions": {
      /* Basic Options */
      "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
      "module": "commonjs", /* Specify module code generation: 'none', commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
      "lib": [
      "dom",
      "es2015"
      ], /* Specify library files to be included in the compilation: */
      "allowJs": true, /* Allow javascript files to be compiled. */
      // "checkJs": true, /* Report errors in .js files. */
      // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
      // "declaration": true, /* Generates corresponding '.d.ts' file. */
      // "sourceMap": true, /* Generates corresponding '.map' file. */
      // "outFile": "./", /* Concatenate and emit output to single file. */
      "outDir": "./.tsbuild", /* Redirect output structure to the directory. */
      // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
      // "removeComments": true, /* Do not emit comments to output. */
      // "noEmit": true, /* Do not emit outputs. */
      // "importHelpers": true, /* Import emit helpers from 'tslib'. */
      // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
      // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
      /* Strict Type-Checking Options */
      "strict": true, /* Enable all strict type-checking options. */
      "noImplicitAny": false, /* Raise error on expressions and declarations with an implied 'any' type. */
      "strictNullChecks": false, /* Enable strict null checks. */
      "noImplicitThis": false, /* Raise error on 'this' expressions with an implied 'any' type. */
      // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
      /* Additional Checks */
      // "noUnusedLocals": true, /* Report errors on unused locals. */
      // "noUnusedParameters": true, /* Report errors on unused parameters. */
      // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
      // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
      /* Module Resolution Options */
      // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
      "baseUrl": "./source/Scripts", /* Base directory to resolve non-absolute module names. */
      "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
      // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
      // "typeRoots": [], /* List of folders to include type definitions from. */
      // "types": [], /* Type declaration files to be included in compilation. */
      // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
      // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
      /* Source Map Options */
      // "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
      // "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */
      // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
      // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
      /* Experimental Options */
      "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
      "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */
      }
      }
  • Evgeniy

    Здравствуйте! Не удалось ли Вам разобраться с локализацией в webix jet приложениях с помощью плагина Locale? Уже с пятницы прошлой бьюсь и никак не выходит... Помните Вы мне тестовые примерчики скидывали. Я всё таки за основу взял проект для amd и TS. Спасибо!

    November 21
  • Meera

    I have posted the question on forum as well(excel to datatable copy paste)

    August 28
  • Meera

    Hi
    Do you know how to make column and rows dynamically .
    Like this http://jsfiddle.net/duwood/sTX7y/

    Any help will be appreciated.
    Thanks

    August 28
  • Meera

    Hi Intregal ,

    Please help me out on Angular ui-sref link on tree node this question.
    If you know about it.

    Thanks,
    Mira Karale

    June 15
  • intregal joined.
    Welcome Aboard!
    August 2016

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!