Webstorm doesn't see Meteor packages - meteor

I have Webstorm 11.0.1 and Meteor 1.2.1.
I have an issue with Kadira:flow-router not being shown in external libraries and therefore Webstorm is painting red all the references to the FlowRouter API.
The Meteor app itself is working fine. The problem is with IDE only.
There was a similar issue with another API:
Webstorm doesn't see API
However I was able to use the a o3 package.

It is a bug of Meteor import system in WebStorm. The problem will be fixed in WS 11.0.2.
As workaround you can manually create external library for the directory:
"$USER_HOME/.meteor/packages/kadira_flow-router/2.9.0/web.browser".

Related

How to solve the problem with sqlite in cordova?

I'm moving the electron project to cordova. To work with sqlite I use NPM plugin sqlite-sync. In electron it worked perfectly. After porting the sources and installing the dependencies, I see an error when starting the project.
ERROR in ./node_modules/sql.js/js/sql.js
Module not found: Error: Can't resolve 'fs' in 'D:\PROJECTS\PRODUCTIONS\MOBILE\\node_modules\sql.js\js'
# ./node_modules/sql.js/js/sql.js 3:1275-1288 3:170484-170497
# ./node_modules/sqlite-sync/sqlite.js
# ./src/store/index.js
# ./src/main.js
# multi ./build/dev-client babel-polyfill ./src/main.js
how fix problem? win platform
Electron and Cordova are not the same, Electron implements the NodeJS API while Cordova uses its own API. If you want to use SqlLite in cordova you are going to have to rip out the parts that use NodeJS (if you see the word 'require' it is probably a node import -- in fact to make life easier on yourself use ES6 imports with WebPack or Browserify so that you know which code to rip out). You may be able to use a lot of node_modules with a modern build system but it is going to be a fair bit of work to move from Electron to Cordova. If you want to use SQLite, the SQLite Cordova Plugin is probably the easiest way to do this, but it is going to look a little different from the NodeJs Sqlite API.

React Native Version Mismatch with Native older, with RNFirebase

I am getting the Version Mismatch with JavaScript version at 0.53.3 and Native sitting at 0.50.4.
Ran watchman watch-del-all as instructed and re-run react-native run-ios again with no luck. Also did cd ios && pod install for many times each time showing Pod installation complete! There are 11 dependencies from the Podfile and 25 total pods installed..
Have found solutions about the Version mismatch which most of them are Native higher than the JavaScript so updating package.json would work. However, how may I update the Native so that it matches the JavaScript Version?
I am not currently using Expo.
Regarding "downgrade RN", I updated as there was a Firebase [[DEFAULT]] problem and one of the suggested fix is to update RN (re-downloading GoogleServices-Info.plist didn't help). Thus I am looking for instructions for keeping RN at this version.
The issue of mismatch is related to the changing of your react-native version without properly updating peer dependencies and native projects.
Since you aren't using Expo, try following the upgrade guidelines here offered from Facebook.
Upgrading to new React Native versions
Found under.. "Projects built with native code"
I personally found success using the "Alternative" steps, and then confirmed my project
** BUILD SUCCEEDED ** correctly by both...
on the console using react-native run-ios
and then from within Xcode

Do I need two versions of jQuery in Meteor?

In my Meteor project it looks like I've got two versions of jQuery running. My app is using the atmosphere package materialize:materialize and I know that one of its dependencies is jQuery. In my meteor/packages folder it shows version 1.11.10 being used.
But the confusing part is in my External Libraries folder. It also shows a version of jQuery 2.0.0. The only npm package that I have used for my app was when I brought in the babel runtime that was required for Meteor version 1.4.3.2. I had in the past installed Materialize from npm but removed it some time ago. Confused to why that jQuery 2 is there.
This is fine, it happens this way because of package dependencies, Meteor depends on what is quite an old version of JQuery, and one of your npm packages depends on 2.0.
It does seem strange, but it isn't a problem.
What is happening here is some of the meteor packages depends on jquery and some of the npm packages does the same so you end up having the lib installed twice. Nothing terrible except that clients would have to download the same library twice. This is a known bug here https://github.com/meteor/meteor/issues/6626. Not sure where is it going though, it's been there for quite long already.

Management packages. What tool should I use?

I'm starting new app with meteor and I'm confuse when I have to install packages.
Meteor gives the possibility to install packages just like that:
meteor add <username>:<packagename>
Ok, very easy. The problem is that I would like use bower then, How I have to install the packages? For example angular.
meteor add urigo:angular
is the same as? what is the difference*? How I have to perform?
bower install angular
The logical conclusion could be use one of them, but I have seen in examples that they can be toguether.
*the package is recorded in different places, but the operation is the same?
With
meteor add <developer>:<packagename>
you add packages from the Meteor specific package database. Meteor packages are completely integrated into the Meteor eco-system and may contain both server and client side code.
You should use "meteor add" whenever possible.
To find Meteor packages you can use Atmosphere
Bower on the other hand is a framework independent package system for client side (mostly) JavaScript packages. It's not well integrated with Meteor - Although community packages exists to simplify usage of Bower packages with Meteor.
To answer you specific example:
meteor add urigo:angular
This command adds the Angular package of the Angular-Meteor project to your Meteor application. It's not only Angular but does also include some Angular services ($meteor) to provide integration of Meteor with Angular.
It even adds Angular support to the server side to some degree.
bower install angular
only downloads the official minified and non-minified javascript file of the latest Angular version for client side use.
You could use the Bower version with Angular but you wouldn't get the benefits of the integration.
While I don't use Bower myself, check out this package: https://atmospherejs.com/mquandalle/bower. I think it may help answer your question.

Generate apk file for meteor app

I have a project is working for android browser. Is there a way to generate the apk file?
Also, are there anything that I shoud know before generating the apk file?
There are a few steps to follow in order to generate the Android application file (.apk) from a meteor app:
meteor install-sdk android
Have the mobile-config.js file in your project root (mobile-config.js example)
meteor add-platform android
meteor build ~/your-output-dir --server=yourapp.meteor.com
Then you will have your .apk file in ~/your-output-dir/android/unaligned.apk
If you want to proceed and submit to Google Play Store, here are the steps to follow: https://guide.meteor.com/mobile.html#submitting-android
Hope this helps!
You can build an APK file with meteor build command.
Read more about it in the docs: http://docs.meteor.com/#/full/meteorbuild or by typing meteor help build in your terminal.
Starting with Meteor 1.2, the bundled Android tools have been removed and a system-wide install of the Android SDK is now required. This should make it easier to keep the development toolchain up to date and helps avoid some difficult to diagnose failures. The meteor install-sdk command no longer attempts to download and install the Android tools for you (it has been deprecated and just points you to these instructions).
like imslavko says, meteor build works pretty fine, also if you are looking for more information take a look on this Meteorpedia
It work for me
Reegards
As of now playstore has started giving warning while uploading APK about unoptimised bundle and insisting for uploading Android app bundle.
Insted of generating APK why not generate .aab of your project and reduce size of the application.
For people wondering about how to generate .aab for your existing project can read my blog here:
My blog link

Resources