Mobile-Detect | lightweight PHP class for detecting mobile devices | Computer Vision library

 by   serbanghita PHP Version: 3.74.0 License: MIT

kandi X-RAY | Mobile-Detect Summary

Mobile-Detect is a PHP library typically used in Artificial Intelligence, Computer Vision applications. Mobile-Detect has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.
Motto: "Every business should have a detection script to detect mobile readers.". Mobile Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment. Your website's content strategy is important! You need a complete toolkit to deliver an experience that is optimized, fast and relevant to your users. Mobile Detect class is a server-side detection tool that can help you with your RWD strategy, it is not a replacement for CSS3 media queries or other forms of client-side feature detection. We're committed to make Mobile_Detect the best open-source mobile detection resource and this is why before each release we're running unit tests and research and update the detection rules on monthly basis. See the history of the project. Use this to quickly test the demo. Use this method to get continuous updates.
    Support
      Quality
        Security
          License
            Reuse
            Support
              Quality
                Security
                  License
                    Reuse

                      kandi-support Support

                        summary
                        Mobile-Detect has a medium active ecosystem.
                        summary
                        It has 10228 star(s) with 2700 fork(s). There are 610 watchers for this library.
                        summary
                        There were 1 major release(s) in the last 6 months.
                        summary
                        There are 11 open issues and 663 have been closed. On average issues are closed in 2071 days. There are no pull requests.
                        summary
                        It has a neutral sentiment in the developer community.
                        summary
                        The latest version of Mobile-Detect is 3.74.0
                        Mobile-Detect Support
                          Best in #Computer Vision
                            Average in #Computer Vision
                            Mobile-Detect Support
                              Best in #Computer Vision
                                Average in #Computer Vision

                                  kandi-Quality Quality

                                    summary
                                    Mobile-Detect has 0 bugs and 0 code smells.
                                    Mobile-Detect Quality
                                      Best in #Computer Vision
                                        Average in #Computer Vision
                                        Mobile-Detect Quality
                                          Best in #Computer Vision
                                            Average in #Computer Vision

                                              kandi-Security Security

                                                summary
                                                Mobile-Detect has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
                                                summary
                                                Mobile-Detect code analysis shows 0 unresolved vulnerabilities.
                                                summary
                                                There are 0 security hotspots that need review.
                                                Mobile-Detect Security
                                                  Best in #Computer Vision
                                                    Average in #Computer Vision
                                                    Mobile-Detect Security
                                                      Best in #Computer Vision
                                                        Average in #Computer Vision

                                                          kandi-License License

                                                            summary
                                                            Mobile-Detect is licensed under the MIT License. This license is Permissive.
                                                            summary
                                                            Permissive licenses have the least restrictions, and you can use them in most projects.
                                                            Mobile-Detect License
                                                              Best in #Computer Vision
                                                                Average in #Computer Vision
                                                                Mobile-Detect License
                                                                  Best in #Computer Vision
                                                                    Average in #Computer Vision

                                                                      kandi-Reuse Reuse

                                                                        summary
                                                                        Mobile-Detect releases are available to install and integrate.
                                                                        summary
                                                                        Installation instructions are not available. Examples and code snippets are available.
                                                                        summary
                                                                        It has 734 lines of code, 36 functions and 4 files.
                                                                        summary
                                                                        It has high code complexity. Code complexity directly impacts maintainability of the code.
                                                                        Mobile-Detect Reuse
                                                                          Best in #Computer Vision
                                                                            Average in #Computer Vision
                                                                            Mobile-Detect Reuse
                                                                              Best in #Computer Vision
                                                                                Average in #Computer Vision
                                                                                  Top functions reviewed by kandi - BETA
                                                                                  kandi has reviewed Mobile-Detect and discovered the below as its top functions. This is intended to give you an instant insight into Mobile-Detect implemented functionality, and help decide if they suit your requirements.
                                                                                  • Determine if the device is mobile .
                                                                                    • Returns the version of the user agent .
                                                                                      • Determine if the browser is mobile .
                                                                                        • Set User - Agent
                                                                                          • Check the HTTP headers for a mobile header
                                                                                            • Sets the cloudfront headers
                                                                                              • Set HTTP headers .
                                                                                                • Determine if the user agent is a tablet .
                                                                                                  • Match a key against the cache key
                                                                                                    • Get an HTTP header
                                                                                                      Get all kandi verified functions for this library.
                                                                                                      Get all kandi verified functions for this library.

                                                                                                      Mobile-Detect Key Features

                                                                                                      JetBrains is sponsoring the project by providing licenses for PHPStorm and DataGrip.
                                                                                                      Mobile_Detect 2.x.x is only integrating new regexes, User-Agents and tests. We are focusing on new tablets only. The rest of the PRs about TVs, bots or optimizations will be closed and analyzed after 3.0.0-beta is released.
                                                                                                      Mobile_Detect 3.x.x is experimental and WIP.
                                                                                                      Download latest release
                                                                                                      Mobile_Detect.php
                                                                                                      :iphone: Live demo!
                                                                                                      Code examples
                                                                                                      mobile-detect.js - A JavaScript port of Mobile-Detect class. Made by Heinrich Goebl.
                                                                                                      Varnish Mobile Detect - Drop-in varnish solution to mobile user detection based on the Mobile-Detect library. Made by willemk.
                                                                                                      mobiledetect2vcl - Python script to transform the Mobile Detect JSON database into an UA-based mobile detection VCL subroutine easily integrable in any Varnish Cache configuration. Made by Carlos Abalde.
                                                                                                      mobile-detect.lua is a port of Mobile-Detect to Lua for NGINX HTTP servers. Follows closely to mobile-detect.js. Supports all methods that server-side mobile-detect.js supports. Fully unit-tested and synced with Travis CI (Build Passing badge included). Made by Mark Walters.
                                                                                                      Mobile Detect for WordPress - WordPress has a built-in function (wp_is_mobile()) to detect mobile devices. There is (at least) one catch, though. It considers iPad (iPad pro, and any tablet) as a mobile. So, this 3rd party module changes the way wp_is_mobile() works with the help of Mobile Detect PHP library! Made by Pothi Kalimuthu
                                                                                                      WordPress Mobile Detect - Gives you the ability to wrap that infographic in a [notdevice][/notdevice] shortcode so at the server level WordPress will decide to show that content only if the user is NOT on a phone or tablet. Made by Jesse Friedman.
                                                                                                      mobble - provides mobile related conditional functions for your site. e.g. is_iphone(), is_mobile() and is_tablet(). Made by Scott Evans.
                                                                                                      WordPress Responsage - A small WordPress theme plugin that allows you to make your images responsive. Made by Adrian Ciaschetti.
                                                                                                      WP247 Body Classes - Add unique classes to the body tag for easy styling based on various attributes (archive, user, post, mobile) and various WordPress "is" functions. Mobile attributes include type of device, Operating System, Browser, etc. Examples: .is-mobile, .is-not-mobile, .is-tablet, .is-ios, .is-not-ios, .is-androidos, .is-chromebrowser. Made by wescleveland56.
                                                                                                      Adaptive Content for WordPress provides the most intuitive set of shortcodes for including/excluding content on mobile devices, tablets desktops and other more specific device parameters. This lightweight plugin lets content writers and theme authors choose when WordPress should or shouldn’t show any give content item using shortcodes and quicktags or theme elements using functions. Made by AddFunc.
                                                                                                      AddFunc Mobile Detect for WordPress redirects mobile traffic to your mobile website and, basically, gives you loads of control over your mobile redirects. Made by AddFunc.
                                                                                                      Drupal Mobile Switch - The Mobile Switch Drupal module provides a automatic theme switch functionality for mobile devices, detected by Browscap or Mobile Detect. Made by Siegfried Neumann.
                                                                                                      Drupal Context Mobile Detect - This is a Drupal context module which integrates Context and PHP Mobile Detect library. Created by Artem Shymko.
                                                                                                      Drupal Mobile Detect - Lightweight mobile detect module for Drupal created by Matthew Donadio.
                                                                                                      yagendoo Joomla! Mobile Detection Plugin - Lightweight PHP plugin for Joomla! that detects a mobile browser using the Mobile Detect class. Made by yagendoo media.
                                                                                                      User Agent Detector plugin - This system plugin detects the user agent of your website visitor and sets a session variable accordingly. Based on the user agent, the plugin detects if the site is running on a desktop pc, tablet or smartphone. It can also detect if the visitor is a spider bot (search engine). Session variable that is set: ualayout. Possible values: desktop, tablet, mobile, bot. Made by @ReneKreijveld.
                                                                                                      Magento helper from Optimise Web enables the use of all functions provided by Mobile Detect. Made by Kathir Vel.
                                                                                                      Magento 2 Mobile Detect Theme Change is an extension for Magento 2 that will change the theme or redirect to a different URL. Also containing a helper to check for the device type.
                                                                                                      PrestaShop is a free, secure and open source shopping cart platform. Mobile_Detect is included in the default package since 1.5.x.
                                                                                                      Agent is a user agent class for Laravel based on Mobile Detect with some additional functionality. Made by Jens Segers.
                                                                                                      Laravel Mobile Detect is a package that enables you to use device detection right in your Laravel Blade templates. (Utilises the well-known, constantly updated PHP mobile detection library.) Made by Barnabas Kecskes.
                                                                                                      BrowserDetect is a browser and mobile detection package, collects and wrap together the best user-agent identifiers for Laravel. Created by Varga Zsolt.
                                                                                                      ZF2 Mobile-Detect is a Zend Framework 2 module that provides Mobile-Detect features (Mobile_Detect class as a service, helper for views and plugin controllers). Made by neilime.
                                                                                                      ZF2 MobileDetectModule facilitates integration of a PHP MobileDetect class with some ZF2-based application. Has similar idea like the existing ZF2 Mobile-Detect module, but differs in initialization and provision routine of the actual Mobile_Detect class. Appropriate view helper and controller plugin also have different conceptions. Made by Nikola Posa.
                                                                                                      Symfony2 Mobile Detect Bundle is a bundle for detecting mobile devices, manage mobile view and redirect to the mobile and tablet version. Made by Nikolay Ivlev.
                                                                                                      Silex Mobile Detect Service Provider is a service provider to interact with Mobile detect class methods. Made by Lhassan Baazzi.
                                                                                                      Slim_Mobile_Detect implements Mobile_Detect lib for different responses write on Slim Framework App.
                                                                                                      EE2 Detect Mobile is a lightweight PHP plugin for EE2 that detects a mobile browser using the Mobile Detect class. Made by Gareth Davies.
                                                                                                      Yii Extension - Mobile detect plugin for Yii framework. Made by Alexey Salnikov.
                                                                                                      Yii Extension - Mobile detect component for Yii framework 1.x version which supports composer package manager. Made by Candas Minareci.
                                                                                                      Yii2 Device Detect - Yii2 extension for Mobile-Detect library. Made by Alexander Nestorov.
                                                                                                      CakePHP MobileDetect is a plugin component for CakePHP 2.x. Made by Gregory Gaskill.
                                                                                                      Special Agent is a FuelPHP package which uses php-mobile-detect to determine whether a device is mobile or not. It overrides the Fuelphp Agent class its methods. Made by Robbie Bardjin.
                                                                                                      px_mobiledetect is an extension that helps to detect visitor's mobile device class (if that’s tablet or mobile device like smartphone). Made by Alexander Tretyak.
                                                                                                      PageCache is a lightweight PHP library for full page cache, with built-in Mobile-Detect support. Made by Muhammed Mamedov.
                                                                                                      Statamic CMS Mobile Detect is a plugin. Made by Sergei Filippov of Haiku Lab.
                                                                                                      Kohana Mobile Detect is an example of implementation of Mobile_Detect class with Kohana framework. Written by Luiz Alberto S. Ribeiro.
                                                                                                      MemHT is a Free PHP CMS and Blog that permit the creation and the management online of websites with few and easy steps. Has the class included in the core.
                                                                                                      concrete5 is a CMS that is free and open source. The library is included in the core.
                                                                                                      engine7 is PHP Open Source Framework. The Mobile_Detect class is included in the engine.
                                                                                                      Zikula is a free and open-source Content Management Framework, which allows you to run impressive websites and build powerful online applications. The core uses Mobile-Detect to switch to a special Mobile theme, using jQueryMobile.
                                                                                                      UserAgentInfo is a PHP class for parsing user agent strings (HTTP_USER_AGENT). Includes mobile checks, bot checks, browser types/versions and more. Based on browscap, Mobile_Detect and ua-parser. Created for high traffic websites and fast batch processing. Made by quentin389.
                                                                                                      LJ Mobile Detect is a simple implementation of Mobile Detect for Craft CMS. Made by Lewis Jenkins.
                                                                                                      Detect Craft is a Craft CMS wrapper for the Mobile_Detect library. Made by Mikkel Rummelhoff.
                                                                                                      Grav Plugin Mobile Detect is a simple implementation of Mobile Detect for Grav CMS. Made by Dimitri Longo.
                                                                                                      Mobile_Detect module for UliCMS. Made by derUli.
                                                                                                      MobileDetect.pm is a Perl module for Mobile Detect. Made by Sebastian Enger.
                                                                                                      pymobiledetect - Mobile detect python package. Made by Bas van Oostveen.
                                                                                                      mobile_detect.rb is a Ruby gem using the JSON data exposed by the php project and implementing a basic subset of the API (as much as can be done by the exposed data). Made by Karthik T.
                                                                                                      GoMobileDetect is a Go port of Mobile Detect class. Made by https://github.com/Shaked.
                                                                                                      ua-lua is a small lib written in LUA providing device type detection. ua-lua is detecting mobile or tablet devices based on user-agent inside nginx daemon. Made by Frédéric Robinet.
                                                                                                      mobile-detect is a .Net partial port written in C#. Made by Valentin Dide.
                                                                                                      MobileDetect is a CFC port of the Mobile_Detect PHP Library. Made by Giancarlo Gomez.
                                                                                                      Mobile Detect Fast (See: #474) is a class to increase the performance of Mobile Detect lib. Made by LanaGuani.

                                                                                                      Mobile-Detect Examples and Code Snippets

                                                                                                      No Code Snippets are available at this moment for Mobile-Detect.
                                                                                                      Community Discussions

                                                                                                      Trending Discussions on Mobile-Detect

                                                                                                      How do I access localStorage or mock localStorage for Jest + vue-test-utils tests?
                                                                                                      chevron right
                                                                                                      CRA app doesn't run after production build?
                                                                                                      chevron right

                                                                                                      QUESTION

                                                                                                      How do I access localStorage or mock localStorage for Jest + vue-test-utils tests?
                                                                                                      Asked 2021-May-25 at 12:25

                                                                                                      I am trying to test an axios request, and I need to use an auth token in order to access the endpoint, however my test fails because I am getting "Bearer null" and inputting this into my headers.Authorization. Here is my actual code below

                                                                                                      File I'm testing:

                                                                                                      this.$axios.get(url, { headers: { Authorization: `Bearer ${localStorage.getItem("access-token")}` } })
                                                                                                                  .then((response) => {
                                                                                                                      this.loading = true;             
                                                                                                                      // Get latest barcode created and default it to our "from" input
                                                                                                                      this.barcodeFrom = response.data.data[response.data.data.length - 1]['i_end_uid'] + 1;
                                                                                                                      this.barcodeTo = this.barcodeFrom + 1;
                                                                                                                      this.barcodeRanges = response.data.data;
                                                                                                      
                                                                                                                      // Here we add to the data array to make printed barcodes more obvious for the user
                                                                                                                      this.barcodeRanges.map(item => item['range'] = `${item['i_start_uid']} - ${item['i_end_uid']}`);
                                                                                                      
                                                                                                                      // Make newest barcodes appear at the top
                                                                                                                      this.barcodeRanges.sort((a, b) => new Date(b['created_at']) - new Date(a['created_at']));
                                                                                                                  })
                                                                                                                  .catch((error) => {
                                                                                                                      console.log('Barcode retrieval error:', error);
                                                                                                                      this.barcodeFrom === 0 ? null : this.snackbarError = true;
                                                                                                                  })
                                                                                                                  .finally(() => {
                                                                                                                      // Edge case when there's no barcode records
                                                                                                                      this.barcodeFrom === 0 ? this.barcodeTo = 1 : null;
                                                                                                                      this.loading = false
                                                                                                                  });
                                                                                                                  console.log('bcr', this.barcodeRanges);
                                                                                                      

                                                                                                      Test file:

                                                                                                      import Vuetify from "vuetify";
                                                                                                      import Vuex from "vuex";
                                                                                                      import { createLocalVue, shallowMount } from "@vue/test-utils";
                                                                                                      import VueMobileDetection from "vue-mobile-detection";
                                                                                                      import axios from 'axios';
                                                                                                      
                                                                                                      import index from "@/pages/barcode_logs/index";
                                                                                                      
                                                                                                      describe('/pages/barcode_logs/index.vue', () => {
                                                                                                          // Initialize our 3rd party stuff
                                                                                                          const localVue = createLocalVue();
                                                                                                          localVue.use(Vuetify);
                                                                                                          localVue.use(Vuex);
                                                                                                          localVue.use(axios);
                                                                                                          localVue.use(VueMobileDetection);
                                                                                                      
                                                                                                          // Initialize store
                                                                                                          let store;
                                                                                                      
                                                                                                          // Create store
                                                                                                          store = new Vuex.Store({
                                                                                                              modules: {
                                                                                                                  core: {
                                                                                                                      state: {
                                                                                                                          labgroup:{
                                                                                                                              current: {
                                                                                                                                  id: 1
                                                                                                                              }
                                                                                                                          }
                                                                                                                      }
                                                                                                                  }
                                                                                                              }
                                                                                                          });
                                                                                                      
                                                                                                          // Set-up wrapper options
                                                                                                          const wrapperOptions = {
                                                                                                              localVue,
                                                                                                              store,
                                                                                                              mocks: {
                                                                                                                  $axios: {
                                                                                                                      get: jest.fn(() => Promise.resolve({ data: {} }))
                                                                                                                  }
                                                                                                              }
                                                                                                          };
                                                                                                      
                                                                                                          // Prep spies for our component methods we want to validate
                                                                                                          const spycreateBarcodes = jest.spyOn(index.methods, 'createBarcodes');
                                                                                                          const createdHook = jest.spyOn(index, 'created');
                                                                                                          // Mount the component we're testing
                                                                                                          const wrapper = shallowMount(index, wrapperOptions);
                                                                                                      
                                                                                                          test('if barcode logs were retrieved', () => {
                                                                                                              expect(createdHook).toHaveBeenCalled();
                                                                                                              expect(wrapper.vm.barcodeRanges).toHaveLength(11);
                                                                                                          });
                                                                                                      
                                                                                                      });
                                                                                                      
                                                                                                      

                                                                                                      How do I mock or get the actual auth token in to work in my test?

                                                                                                      ANSWER

                                                                                                      Answered 2021-May-25 at 12:25

                                                                                                      You can try to mock localStorage before creating instance of a wrapper like this:

                                                                                                      global.localStorage = {
                                                                                                        state: {
                                                                                                          'access-token': 'superHashedString'
                                                                                                        },
                                                                                                        setItem (key, item) {
                                                                                                          this.state[key] = item
                                                                                                        },
                                                                                                        getItem (key) { 
                                                                                                          return this.state[key]
                                                                                                        }
                                                                                                      }
                                                                                                      

                                                                                                      You can also spy on localStorage functions to check what arguments they were called with:

                                                                                                      jest.spyOn(global.localStorage, 'setItem')
                                                                                                      jest.spyOn(global.localStorage, 'getItem')
                                                                                                      

                                                                                                      OR

                                                                                                      You can delete localVue.use(axios) to let your $axios mock work correctly.

                                                                                                      This

                                                                                                      mocks: {
                                                                                                        $axios: {
                                                                                                           get: jest.fn(() => Promise.resolve({ data: {} }))
                                                                                                        }
                                                                                                      }
                                                                                                      

                                                                                                      is not working because of that

                                                                                                      localVue.use(axios)
                                                                                                      

                                                                                                      Source https://stackoverflow.com/questions/67644948

                                                                                                      QUESTION

                                                                                                      CRA app doesn't run after production build?
                                                                                                      Asked 2020-Dec-24 at 14:26

                                                                                                      I have a React app created with CRA, it compiles and runs fine. But production build made with yarn buld and served with serve -s build shows following error in console:

                                                                                                      Uncaught TypeError: Cannot read property 'a' of undefined
                                                                                                          at Object.M (main.a6de4952.chunk.js:1)
                                                                                                          at w (main.a6de4952.chunk.js:1)
                                                                                                          at 7.f8bc878d.chunk.js:2
                                                                                                          at Array.forEach ()
                                                                                                          at 7.f8bc878d.chunk.js:2
                                                                                                          at c (7.f8bc878d.chunk.js:2)
                                                                                                          at Object.370 (main.a6de4952.chunk.js:1)
                                                                                                          at f ((index):1)
                                                                                                          at Object.152 (main.a6de4952.chunk.js:1)
                                                                                                          at f ((index):1)
                                                                                                      

                                                                                                      I enabled generating source maps and debugged the problem. It crashes in this reducer when initializing redux reducers:

                                                                                                      import * as Actions from '../actions';
                                                                                                      
                                                                                                      const initialState = {
                                                                                                          tableRef: undefined,
                                                                                                      };
                                                                                                      
                                                                                                      const roadmapReducer = function(state = initialState, action) {
                                                                                                          switch ( action.type ) {
                                                                                                              case Actions.SET_ROADMAP_TABLE_REF:
                                                                                                              {
                                                                                                                  return {
                                                                                                                      ...state,
                                                                                                                      tableRef: action.tableRef,
                                                                                                                  };
                                                                                                              }
                                                                                                              default:
                                                                                                              {
                                                                                                                  return state;
                                                                                                              }
                                                                                                          }
                                                                                                      };
                                                                                                      
                                                                                                      export default roadmapReducer;
                                                                                                      

                                                                                                      on this line

                                                                                                      case Actions.SET_ROADMAP_TABLE_REF:
                                                                                                      

                                                                                                      Relevant roadmap.actions.js (other actions are omitted for clarity):

                                                                                                      import axios from 'axios-instance';
                                                                                                      import * as Actions from 'app/store/actions';
                                                                                                      
                                                                                                      export const SET_ROADMAP_TABLE_REF = '[ROADMAP APP] SET ROADMAP TABLE REF';
                                                                                                      export const SET_ROADMAP_BADGE = '[ROADMAP APP] SET ROADMAP BADGE';
                                                                                                      export const REFRESH_ROADMAP_TABLE = '[ROADMAP APP] REFRESH ROADMAP TABLE';
                                                                                                      export const VOTE_FEATURE = '[ROADMAP APP] VOTE FEATURE';
                                                                                                      
                                                                                                      export function setRoadmapTableRef(tableRef) {
                                                                                                          return {
                                                                                                              type: SET_ROADMAP_TABLE_REF,
                                                                                                              tableRef
                                                                                                          };
                                                                                                      }
                                                                                                      
                                                                                                      ...
                                                                                                      

                                                                                                      Again, the project runs successfully without building. Major changes since the last release are adding Typescript (though I migrated only a handful of files and actions/reducers are untouched) and switching to Yarn 2. I tried to build with npm without any success.

                                                                                                      Here's my package.json:

                                                                                                      {
                                                                                                          "name": "web",
                                                                                                          "version": "1.1.4",
                                                                                                          "private": true,
                                                                                                          "dependencies": {
                                                                                                              "@babel/core": "7.12.10",
                                                                                                              "@babel/node": "7.12.10",
                                                                                                              "@babel/preset-env": "7.11.0",
                                                                                                              "@date-io/core": "^1.3.13",
                                                                                                              "@date-io/date-fns": "^1.3.13",
                                                                                                              "@material-ui/core": "4.11.0",
                                                                                                              "@material-ui/icons": "4.9.1",
                                                                                                              "@material-ui/lab": "^4.0.0-alpha.56",
                                                                                                              "@material-ui/pickers": "^3.2.10",
                                                                                                              "@types/react": "^17.0.0",
                                                                                                              "@types/react-redux": "7.1.12",
                                                                                                              "autosuggest-highlight": "^3.1.1",
                                                                                                              "axios": "^0.21.0",
                                                                                                              "classnames": "^2.2.6",
                                                                                                              "clsx": "^1.1.1",
                                                                                                              "cross-env": "^7.0.3",
                                                                                                              "cross-fetch": "^3.0.6",
                                                                                                              "d3": "^6.3.1",
                                                                                                              "d3-svg-legend": "^2.25.6",
                                                                                                              "date-fns": "^2.16.1",
                                                                                                              "debounce": "^1.2.0",
                                                                                                              "downshift": "^4.1.0",
                                                                                                              "fast-deep-equal": "^2.0.1",
                                                                                                              "filefy": "^0.1.10",
                                                                                                              "firebase": "^7.11.0",
                                                                                                              "formsy-react": "^2.2.1",
                                                                                                              "github-markdown-css": "^4.0.0",
                                                                                                              "history": "^4.10.1",
                                                                                                              "i18next": "^19.8.4",
                                                                                                              "isomorphic-fetch": "^2.2.1",
                                                                                                              "jspdf": "^2.2.0",
                                                                                                              "jspdf-autotable": "^3.5.13",
                                                                                                              "jss": "^10.5.0",
                                                                                                              "jss-plugin-extend": "^10.5.0",
                                                                                                              "jss-rtl": "^0.3.0",
                                                                                                              "keycode": "^2.2.0",
                                                                                                              "localforage": "^1.9.0",
                                                                                                              "lodash": "^4.17.20",
                                                                                                              "material-ui-popup-state": "^1.7.1",
                                                                                                              "mobile-detect": "^1.4.4",
                                                                                                              "notistack": "^0.9.9",
                                                                                                              "numeral": "^2.0.6",
                                                                                                              "path-to-regexp": "^3.2.0",
                                                                                                              "perfect-scrollbar": "^1.5.0",
                                                                                                              "prismjs": "^1.22.0",
                                                                                                              "promise": "^8.1.0",
                                                                                                              "prop-types": "^15.7.2",
                                                                                                              "purgecss": "^1.4.2",
                                                                                                              "qs": "^6.9.4",
                                                                                                              "raw-loader": "^4.0.2",
                                                                                                              "react": "^16.13.0",
                                                                                                              "react-app-polyfill": "^1.0.6",
                                                                                                              "react-autosuggest": "^9.4.3",
                                                                                                              "react-beautiful-dnd": "^13.0.0",
                                                                                                              "react-confirm-alert": "^2.6.2",
                                                                                                              "react-cookie-consent": "^5.1.2",
                                                                                                              "react-dom": "^16.13.0",
                                                                                                              "react-double-scrollbar": "^0.0.15",
                                                                                                              "react-draggable": "^4.4.3",
                                                                                                              "react-frame-component": "^4.1.3",
                                                                                                              "react-i18next": "^11.8.4",
                                                                                                              "react-markdown": "^4.3.1",
                                                                                                              "react-masonry-css": "^1.0.14",
                                                                                                              "react-number-format": "^4.4.1",
                                                                                                              "react-popper": "^1.3.7",
                                                                                                              "react-redux": "^7.2.2",
                                                                                                              "react-router": "^5.2.0",
                                                                                                              "react-router-config": "^5.1.1",
                                                                                                              "react-router-dom": "^5.2.0",
                                                                                                              "react-scripts": "^3.4.4",
                                                                                                              "react-select": "^3.1.1",
                                                                                                              "react-social-login-buttons": "^3.1.0",
                                                                                                              "react-spring": "^8.0.27",
                                                                                                              "react-swipeable-views": "^0.13.9",
                                                                                                              "react-swipeable-views-utils": "^0.14.0-alpha.0",
                                                                                                              "react-text-loop": "^2.3.0",
                                                                                                              "react-text-mask": "^5.4.3",
                                                                                                              "react-virtualized": "^9.22.3",
                                                                                                              "react-window": "^1.8.6",
                                                                                                              "redux": "4.0.5",
                                                                                                              "redux-thunk": "2.3.0",
                                                                                                              "styled-components": "^5.2.1",
                                                                                                              "tailwindcss": "^1.2.0",
                                                                                                              "tailwindcss-dir": "^4.0.0",
                                                                                                              "typeface-muli": "^1.1.13",
                                                                                                              "typescript": "^4.1.3",
                                                                                                              "velocity-animate": "^1.5.2",
                                                                                                              "velocity-react": "^1.4.3"
                                                                                                          },
                                                                                                          "devDependencies": {
                                                                                                              "@yarnpkg/pnpify": "^2.0.0-rc.18",
                                                                                                              "babel-eslint": "^10.1.0",
                                                                                                              "eslint": "^6.8.0",
                                                                                                              "eslint-config-airbnb": "^18.2.1",
                                                                                                              "eslint-config-prettier": "^6.10.0",
                                                                                                              "eslint-import-resolver-node": "^0.3.4",
                                                                                                              "eslint-plugin-import": "^2.22.1",
                                                                                                              "eslint-plugin-jsx-a11y": "^6.4.1",
                                                                                                              "eslint-plugin-prettier": "^3.3.0",
                                                                                                              "eslint-plugin-react": "^7.21.5",
                                                                                                              "eslint-plugin-react-hooks": "^4.2.0",
                                                                                                              "js-beautify": "^1.13.0",
                                                                                                              "prettier": "^1.19.1",
                                                                                                              "source-map-explorer": "^2.3.1"
                                                                                                          },
                                                                                                          "scripts": {
                                                                                                              "start": "yarn run tailwind && react-scripts start",
                                                                                                              "build": "yarn run tailwind && yarn run purge-tailwind && cross-env GENERATE_SOURCEMAP=true react-scripts --max_old_space_size=1024 build",
                                                                                                              "madge": "madge  --image ./madge-graph.svg --extensions js,jsx,ts,tsx --circular .",
                                                                                                              "tailwind": "tailwind build ./src/styles/tailwind-config.css -c ./tailwind.config.js -o ./src/styles/tailwind.css",
                                                                                                              "purge-tailwind": "node ./purge-tailwindcss.js",
                                                                                                              "test": "react-scripts test --env=node",
                                                                                                              "analyze": "yarn run tailwind && yarn run purge-tailwind && react-scripts build && source-map-explorer 'build/static/js/*.js' --html analyze-result.html",
                                                                                                              "pnpify-sdk": "yarn pnpify --sdk"
                                                                                                          },
                                                                                                          "browserslist": {
                                                                                                              "production": [
                                                                                                                  ">0.2%",
                                                                                                                  "not dead",
                                                                                                                  "not op_mini all"
                                                                                                              ],
                                                                                                              "development": [
                                                                                                                  "last 1 chrome version",
                                                                                                                  "last 1 firefox version",
                                                                                                                  "last 1 safari version",
                                                                                                                  "ie 11"
                                                                                                              ]
                                                                                                          }
                                                                                                      }
                                                                                                      

                                                                                                      Could anybody even just point in the direction where to look for the problem, please?

                                                                                                      ANSWER

                                                                                                      Answered 2020-Dec-24 at 14:26

                                                                                                      After long hours of trial I finally made it work with this trick:

                                                                                                      Replaced import statement from

                                                                                                      import * as Actions from 'app/store/actions';
                                                                                                      

                                                                                                      to

                                                                                                      import * as Actions from 'app/store/actions/roadmap.actions';
                                                                                                      

                                                                                                      I guess the problem is a rare bug in react-scripts that tries to access imported constant before it's actually imported

                                                                                                      Source https://stackoverflow.com/questions/65415110

                                                                                                      Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                                                                                      Vulnerabilities

                                                                                                      No vulnerabilities reported

                                                                                                      Install Mobile-Detect

                                                                                                      You can download it from GitHub.
                                                                                                      PHP requires the Visual C runtime (CRT). The Microsoft Visual C++ Redistributable for Visual Studio 2019 is suitable for all these PHP versions, see visualstudio.microsoft.com. You MUST download the x86 CRT for PHP x86 builds and the x64 CRT for PHP x64 builds. The CRT installer supports the /quiet and /norestart command-line switches, so you can also script it.

                                                                                                      Support

                                                                                                      For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
                                                                                                      Find more information at:
                                                                                                      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                                      Find more libraries
                                                                                                      Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                                      Save this library and start creating your kit
                                                                                                      CLONE
                                                                                                    • HTTPS

                                                                                                      https://github.com/serbanghita/Mobile-Detect.git

                                                                                                    • CLI

                                                                                                      gh repo clone serbanghita/Mobile-Detect

                                                                                                    • sshUrl

                                                                                                      git@github.com:serbanghita/Mobile-Detect.git

                                                                                                    • Share this Page

                                                                                                      share link

                                                                                                      Consider Popular Computer Vision Libraries

                                                                                                      opencv

                                                                                                      by opencv

                                                                                                      tesseract

                                                                                                      by tesseract-ocr

                                                                                                      tesseract.js

                                                                                                      by naptha

                                                                                                      Detectron

                                                                                                      by facebookresearch

                                                                                                      Try Top Libraries by serbanghita

                                                                                                      formToObject.js

                                                                                                      by serbanghitaJavaScript

                                                                                                      jQuery-Chess

                                                                                                      by serbanghitaJavaScript

                                                                                                      jQM-dynamic-popup

                                                                                                      by serbanghitaJavaScript

                                                                                                      jquery-plugins

                                                                                                      by serbanghitaJavaScript

                                                                                                      TypeScript-Builds

                                                                                                      by serbanghitaTypeScript

                                                                                                      Compare Computer Vision Libraries with Highest Support

                                                                                                      opencv

                                                                                                      by opencv

                                                                                                      picasso

                                                                                                      by square

                                                                                                      thumbor

                                                                                                      by thumbor

                                                                                                      albumentations

                                                                                                      by albumentations-team

                                                                                                      vision

                                                                                                      by pytorch

                                                                                                      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                                      Find more libraries
                                                                                                      Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                                      Save this library and start creating your kit