-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Yarn check, npm fallback #17
Conversation
* origin/devinehowest/v3: removed a couple of dependencies + use process.version
Voor de check ipv Er zitten wat ongerelateerde commits bij omdat ik afgebrancht heb van thibmaek/v3 die al wat werk bevat voor #10. Best squashen dus 😄 |
Ga het morgen eens bekijken. Zou voor #10 wel nog eerst even een soort leidraad willen voorzien. Had al wat zitten experimenten met http-client maar deed niet exact wat ik wou. |
Same here voor http-client, daarmee dat ik mijn WIP ook nog niet als pr gestuurd heb. Ik wacht dan wel af :) |
Alternatieve check die volgens mij cross-platform zou moeten werken: const resolvePackageManager = () => {
let packageManager = `npm`;
try {
require(`child_process`).execSync(`npm list -g yarn`, { encoding: `utf8` });
packageManager = `yarn`;
} catch (ex) {
console.log(`yarn not available, using npm instead`);
}
return packageManager;
}; |
Is idd cleaner maar breekt wel als je yarn met brew geinstalllerd hebt of via shell script bv. |
Kan je volgende zaken nog aanpassen:
Denk dat het dan wat leesbaarder gaat worden |
Eigenlijk kun je gewoon yarn --version testen en op basis daarvan beslissen: const resolvePackageManager = () => {
let packageManager = `npm`;
try {
require(`child_process`).execSync(`yarn --version`, { encoding: `utf8` });
packageManager = `yarn`;
} catch (ex) {
console.log(`yarn not available, using npm instead`);
}
return packageManager;
}; |
Net gemerkt: Yarn heeft moeiten met het resolven van node_modules in install scripts. Is bijvoorbeeld een issue bij:
Yarn dus nog niet forceren maar optioneel houden. Eventueel meegeven als een CLI flag en niet automatisch voorkeur geven. |
Werkt met laatste commit door |
@wouterverweirder hoe en wanneer ben je dit exact tegengekomen, ergens een issue op de yarn repo? |
Enkele voorbeelden van installs die nie lukken met yarn:
yarn kan node-gyp niet resolven (wat gebruikt wordt in een post install script) - nochtans zit die package in de dependency tree van die packages. npm doet dit wel correct. Ik ben nog door de issues van yarn aan het scrollen, en zal een bug reporten. |
Deze waarschijnlijk? |
@duivvv nee, is nog iets anders. Die issue gaat over yarn die native rebuilds overschrijft. Heb een issue aangemaakt yarnpkg/yarn#1710 |
net eens geprobeerd en heb geen miserie als ik electron-rebuild installeer via yarn |
Vreemd. Laatste versie yarn, clean cache? $ yarn cache clean
$ yarn add electron-rebuild
error /Users/wouter/MEGAsync/experiments/nodejs/yarn-tests/node_modules/nslog: Command failed.
Exit code: 1
Command: sh
Arguments: -c node-gyp rebuild
Directory: /Users/wouter/MEGAsync/experiments/nodejs/yarn-tests/node_modules/nslog
Output:
module.js:471
throw err;
^
Error: Cannot find module '/Users/wouter/.yarn-config/global/node_modules/yarn/node_modules/node-gyp/bin/node-gyp.js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3 |
ja bizar, werkt hier perfect. Heb ooit ook wel eens wat miserie met node-gyp gehad |
Test je eens in een gewone shell, niet in die electron shell? |
0.16.1 werkt in zowel Terminal als 'die electron shell' :) |
ook cache clean gedaan |
node versie? 6.8.0 hier. |
ook |
Raar. Op 7.0.0 werkt het wel. 6.8.0 niet. |
ik draai 6.8.0, werkt ook bij mij |
Doet ie de compile van de native module? Je zou in node_modules/nslog/build/Release map moeten hebben. Indien niet dan is de node-gyp niet uitgevoerd. Mogelijk ander error-logging niveau? |
pty.js installeert ook perfect |
leek me al vreemd aangezien node-gyp ook in andere modules veel wordt gebruikt en er nog niks over te vinden was |
node 6.8.0 ervan gezwierd en clean install gedaan, resolve issue is geresolved daarmee. Vreemd. |
zou dus gewoon voor die check gaan ipv flag |
heb een _spawn helper toegevoegd, en een yarn prop default op true gezet, voeg jij de check toe in initialize en test je het even @thibmaek |
…heck * devinehowest/v3: yarn default true spawn helper + yarn prop setup # Conflicts: # generators/app/index.js
@duivvv Getest met latest commit en werkt op een node versie met yo en npm. |
bon, merged, heb een beetje zitten prutsen met de commits.. maar denk dat het ok is nu. |
Oplossing voor #15
Succesvol getest in 2 verschillende nvm installs (v7 incl yarn & v6 excl yarn)