Open neoromantic opened 6 years ago
So, i looked at npm install log in minimeteor container and here's what it says:
root@7a3d6826e51e:/# cat /home/user/.npm/_logs/2017-10-30T20_51_06_137Z-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node',
1 verbose cli '/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/npm',
1 verbose cli 'install' ]
2 info using npm@5.4.2
3 info using node@v8.8.1
4 verbose npm-session 34b6d7f140263173
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall giveback.app@0.1.0
7 info lifecycle giveback.app@0.1.0~preinstall: giveback.app@0.1.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 silly install loadShrinkwrap
13 verbose stack SyntaxError: Unexpected token < in JSON at position 5052
13 verbose stack at JSON.parse (<anonymous>)
13 verbose stack at module.exports (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/lib/utils/parse-json.js:3:15)
13 verbose stack at BB.join (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/lib/install/read-shrinkwrap.js:31:20)
13 verbose stack at tryCatcher (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
13 verbose stack at Holder$3._callFunction (eval at generateHolderClass (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/join.js:92:16), <anonymous>:14:44)
13 verbose stack at Holder$3.checkFulfillment (eval at generateHolderClass (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/join.js:92:16), <anonymous>:29:30)
13 verbose stack at Promise.eval (eval at thenCallback (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/join.js:14:16), <anonymous>:6:20)
13 verbose stack at Promise._settlePromise (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:566:21)
13 verbose stack at Promise._settlePromise0 (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
13 verbose stack at Promise._settlePromises (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
13 verbose stack at Promise._fulfill (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
13 verbose stack at Promise._settlePromise (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:582:21)
13 verbose stack at Promise._settlePromise0 (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
13 verbose stack at Promise._settlePromises (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
13 verbose stack at Promise._fulfill (/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
13 verbose stack at /home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/bluebird/js/release/nodeback.js:42:21
13 verbose stack at /home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16
13 verbose stack at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:513:3)
14 verbose cwd /home/user/source
15 verbose Linux 4.9.49-moby
16 verbose argv "/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node" "/home/user/.meteor/packages/meteor-tool/.1.6.0.1whvdik.oongk++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/npm" "install"
17 verbose node v8.8.1
18 verbose npm v5.4.2
19 error Unexpected token < in JSON at position 5052
20 verbose exit [ 1, true ]
Found it. It was corrupted package-lock.json.
I'm glad you figured out how to run it on Gitlab. I tried for a while and encountered an error that I couldn't fix. Eventually, I left Gitlab CI altogether. Maybe I'll give it another shot.
Still can't get it to work due to node version upgrade. So, I've trying to deploy my current app, that's on Meteor 1.5 and i get this:
Errors prevented bundling:
While processing files with nathantreid:css-modules (for target web.browser):
/home/user/source/node_modules/node-sass/lib/binding.js:15:13: Missing binding
/home/user/source/node_modules/node-sass/vendor/linux-x64-46/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit
with Node.js 4.x
Found bindings for the following environments:
- Linux 64-bit with Node.js 8.x
This usually happens because your environment has changed since running `npm
install`.
Run `npm rebuild node-sass --force` to build the binding for your current
environment.
at module.exports
(/home/user/source/node_modules/node-sass/lib/binding.js:15:13)
at Object.<anonymous>
(/home/user/source/node_modules/node-sass/lib/index.js:14:35)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Module.Mp.load (/tools/tool-env/install-runtime.js:30:27)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.require (/tools/isobuild/bundler.js:1915:22)
at makeInstallerOptions.fallback (packages/modules-runtime.js:641:18)
at require (packages/modules-runtime.js:234:16)
at new ScssProcessor (packages/mss/scss-processor.js:12:55)
at CssModulesBuildPlugin._setupPreprocessors
(packages/mss/css-modules-build-plugin.js:125:31)
at CssModulesBuildPlugin.processFilesForTarget
(packages/mss/css-modules-build-plugin.js:74:10)
I'm using css-modules with node-sass. Any Idea?
If I understand things right, then it seems that when build.sh runs 'meteor npm install' on line 75, it uses latest meteor node version, which is 8.
Then, when build.sh runs 'meteor build', it correctly adjusts to node v.4 because my project is still on meteor 1.5.
So, question is how to make meteor npm install to use node version 4, just like when building. I actually don't know how to make it happen and why is npm install creates bindings for node8 instead of node4.
Same happens on my machine, so Gitlab CI is not relevant.
So I logged into meteor build container and check how is it going, and here's what I see:
root@96cbb3d0cfd0:/home/source# curl "https://install.meteor.com/" | sh
root@96cbb3d0cfd0:/home/source# meteor npm -v
5.4.2
root@96cbb3d0cfd0:/home/source# meteor node -v
v8.8.1
root@96cbb3d0cfd0:/home/source# cat .meteor/release
METEOR@1.5.2.2
So, I don't know yet why, but meteor uses new node version instead of node4, which should be selected for meteor 1.5 application. Any ideas?
So, what I did, is added empty meteor command with release tag, just before doing npm install:
meteor --release 1.5.2.2 list
meteor npm install
in build script. And it worked. So, it seems that bug is in Meteor 1.6, that fails to choose proper meteor-tool version when installing npm packages on clean install.
I would appreciate if anyone could check my deductions and confirm or add to it.
Meteor 1.7 and 1.7.0.1 is impacted by a recent NPM bug - see https://github.com/meteor/meteor/issues/9940
I could successfully perform a build using the same workaround. (Adding meteor --release 1.6.1 list
before meteor npm install
.)
So, I was using minimeteor with gitlab CI and it was great.
Today exactly when meteor 1.6 has been release, my build broke.
Here's my .gitlab-ci.yml (relevant part):
So, it just curls minimeteor's build.sh and runs it in my app's folder.
Here's what I get in build log:
And so on. So, it fails to install npm module idk why. Obviously, it is listed in package.json.
Same is happening when I try to build it on my local machine (mac OS).
I'd love to get help on this :(