[SOLVED] - Running Local Meteor Package

Hi everyone - I’m having trouble setting up my project to use a local meteor package instead of a “remote” one. The meteor package I’m trying to use locally is a copy of meteortesting:mocha (so I can put my own logs into it).

Here’s what I’ve done:

  • Git cloned the meteortesting:mocha repo onto my machine
  • Copied the repo into my project root folder with cp -r [PATH]/meteor-mocha **.**
  • Set METEOR_PACKAGE_DIRS=./meteor-mocha

But when I run “meteor add meteortesting:mocha” (which is the name of my local package in ./meteor-mocha/package/package.js) it still adds the registered/online meteortesting:mocha package instead of finding my local one.

I also tried fooling around with the name of my local package (i.e. name:“meteortesting:mochalocal”) to differentiate it, but when I ran meteor add meteortesting:mochalocal it gives the error “error: no such package”

Does anyone know why this may be the case? I based my set up on this article

I’ve never tried setting METEOR_PACKAGE_DIRS to point directly to the package path, so I’m not sure if that is supported or not. Usually METEOR_PACKAGE_DIRS is set to the parent directory of the local packages.

Another option is to create a packages folder in the root of the Meteor app, and put the meteor-mocha folder in there.

2 Likes

your package needs to be in root/packages/your_package (same level with ‘imports’ or ‘node_modules’) with no need for a METEOR_PACKAGE_DIRS env var.

1 Like

Thanks for the tips zodern & paulishca - however it seems to still not be working when I use that folder structure. Here I place the meteor-mocha folder inside root/package and it doesn’t find my package (which I’ve renamed “meteortesting:mochalocal”):

For good measure I also point $METEOR_PACKAGE_DIRS at root/packages, which you can see in the terminal.

One thought I explored - maybe it’s having issues because of the structure of the meteor-mocha folder. As seen here, this folder has its package.js within a sub-folder “package”. Therefore, the folder structure to get to my local package’s package.js when I add meteor-mocha within root/packages is root/packages/meteor-mocha/package/package.js.

So I tried to add just the “package” sub-folder of meteor-mocha directly into root/packages (so package.js is found at root/packages/package/package.js) which made it find my local package, but gave an error re the ECMA package being used when I try to ‘meteor add’ it:

I tried taking out the ecmascript from api.use defined in the package.js of my local package, which allowed me to add the local package, but then gives an error regarding modules & imports (I assume because ecmascript is now missing) when I try to run tests with it as the driver:

Does this approach of adding just the “package” sub-folder of meteor-mocha sound correct and worth troubleshooting? Or will it need those “outside” files (i.e. package.json, test.sh, .circleci) to operate correctly?

1 Like

Ok, just uncomment the ecmascript and remove the package version ‘@0.15.1

Also, I am not sure whether you have the ecmascript package added to your Meteor packages. My projects are running with these installed versions of ecmas (on Meteor 2.7)

ecmascript@0.16.2
ecmascript-runtime@0.8.0
ecmascript-runtime-client@0.12.1
ecmascript-runtime-server@0.11.0

That worked! Thank you so much