Im пытается создать частный пакет NodeJS на машине без сетевого доступа. Так что на машине несколько версий узла, на котором я пытаюсь построить (0.10.26 и некоторые другие ...).NodeJS npm sqlite 3.1.1 зависимость использует неправильную версию узла и узла-gyp под капотом
Итак, как я собираюсь об этом, я связываю офлайн-npm-0.2.0.tgz с нашим пакетом с полной папкой с кешем, содержащей все зависимости, а затем устанавливаю и запускаю автономный-npm-0.2.0-указатель как каталог кэша, это, кажется, работает хорошо, и все зависимости вытаскиваются с локального сервера.
Дело в том, что для пакета, который я создаю, требуется узел v0.12.7, который также связан с ним, поэтому, когда я использую узел и npm, я указываю на полный путь, который вытаскивается вместе с пакетом.
Проблема заключается в том, что, когда речь идет о строительстве sqlite3.1.1, кажется, сделать это, но использует неправильную версию узла, и я понятия не имею, где он читает его из ...
Вот что мой НПМ конфигурации выглядят следующим образом:
[12:27:19][Step 1/2] ; cli configs
[12:27:19][Step 1/2] long = true
[12:27:19][Step 1/2] user-agent = "npm/2.11.3 node/v0.12.7 linux x64"
[12:27:19][Step 1/2]
[12:27:19][Step 1/2] ; userconfig /home2/build/.npmrc
[12:27:19][Step 1/2] cache = "/Users/xxx/buildAgent/work/c5a68e1c6d1f0013/build/install/npmcache"
[12:27:19][Step 1/2] nodedir = "/Users/xxx/buildAgent/work/c5a68e1c6d1f0013/build/src/node"
[12:27:19][Step 1/2] registry = "http://localhost:4873/"
[12:27:19][Step 1/2]
[12:27:19][Step 1/2] ; default values
[12:27:19][Step 1/2] access = null
[12:27:19][Step 1/2] always-auth = false
[12:27:19][Step 1/2] bin-links = true
[12:27:19][Step 1/2] browser = null
[12:27:19][Step 1/2] ca = null
[12:27:19][Step 1/2] ; cache = "/home2/build/.npm" (overridden)
[12:27:19][Step 1/2] cache-lock-retries = 10
[12:27:19][Step 1/2] cache-lock-stale = 60000
[12:27:19][Step 1/2] cache-lock-wait = 10000
[12:27:19][Step 1/2] cache-max = null
[12:27:19][Step 1/2] cache-min = 10
[12:27:19][Step 1/2] cafile = undefined
[12:27:19][Step 1/2] cert = null
[12:27:19][Step 1/2] color = true
[12:27:19][Step 1/2] depth = null
[12:27:19][Step 1/2] description = true
[12:27:19][Step 1/2] dev = false
[12:27:19][Step 1/2] editor = "vi"
[12:27:19][Step 1/2] engine-strict = false
[12:27:19][Step 1/2] fetch-retries = 2
[12:27:19][Step 1/2] fetch-retry-factor = 10
[12:27:19][Step 1/2] fetch-retry-maxtimeout = 60000
[12:27:19][Step 1/2] fetch-retry-mintimeout = 10000
[12:27:19][Step 1/2] force = false
[12:27:19][Step 1/2] git = "git"
[12:27:19][Step 1/2] git-tag-version = true
[12:27:19][Step 1/2] global = false
[12:27:19][Step 1/2] globalconfig = "/Users/fe/TeamCity/buildAgent/work/c5a68e1c6d1f0013/build/install/etc/npmrc"
[12:27:19][Step 1/2] globalignorefile = "/Users/fe/TeamCity/buildAgent/work/c5a68e1c6d1f0013/build/install/etc/npmignore"
[12:27:19][Step 1/2] group = 1000
[12:27:19][Step 1/2] heading = "npm"
[12:27:19][Step 1/2] https-proxy = null
[12:27:19][Step 1/2] if-present = false
[12:27:19][Step 1/2] ignore-scripts = false
[12:27:19][Step 1/2] init-author-email = ""
[12:27:19][Step 1/2] init-author-name = ""
[12:27:19][Step 1/2] init-author-url = ""
[12:27:19][Step 1/2] init-license = "ISC"
[12:27:19][Step 1/2] init-module = "/home2/build/.npm-init.js"
[12:27:19][Step 1/2] init-version = "1.0.0"
[12:27:19][Step 1/2] json = false
[12:27:19][Step 1/2] key = null
[12:27:19][Step 1/2] link = false
[12:27:19][Step 1/2] local-address = undefined
[12:27:19][Step 1/2] loglevel = "warn"
[12:27:19][Step 1/2] ; long = false (overridden)
[12:27:19][Step 1/2] message = "%s"
[12:27:19][Step 1/2] node-version = "0.12.7"
[12:27:19][Step 1/2] npat = false
[12:27:19][Step 1/2] onload-script = null
[12:27:19][Step 1/2] optional = true
[12:27:19][Step 1/2] parseable = false
[12:27:19][Step 1/2] prefix = "/Users/xxx/buildAgent/work/c5a68e1c6d1f0013/build/install"
[12:27:19][Step 1/2] production = false
[12:27:19][Step 1/2] proprietary-attribs = true
[12:27:19][Step 1/2] proxy = null
[12:27:19][Step 1/2] rebuild-bundle = true
[12:27:19][Step 1/2] ; registry = "https://registry.npmjs.org/" (overridden)
[12:27:19][Step 1/2] rollback = true
[12:27:19][Step 1/2] save = false
[12:27:19][Step 1/2] save-bundle = false
[12:27:19][Step 1/2] save-dev = false
[12:27:19][Step 1/2] save-exact = false
[12:27:19][Step 1/2] save-optional = false
[12:27:19][Step 1/2] save-prefix = "^"
[12:27:19][Step 1/2] scope = ""
[12:27:19][Step 1/2] searchexclude = null
[12:27:19][Step 1/2] searchopts = ""
[12:27:19][Step 1/2] searchsort = "name"
[12:27:19][Step 1/2] shell = "/bin/bash"
[12:27:19][Step 1/2] shrinkwrap = true
[12:27:19][Step 1/2] sign-git-tag = false
[12:27:19][Step 1/2] spin = true
[12:27:19][Step 1/2] strict-ssl = true
[12:27:19][Step 1/2] tag = "latest"
[12:27:19][Step 1/2] tag-version-prefix = "v"
[12:27:19][Step 1/2] tmp = "/Users/XXX/temp/buildTmp"
[12:27:19][Step 1/2] umask = 18
[12:27:19][Step 1/2] unicode = true
[12:27:19][Step 1/2] unsafe-perm = true
[12:27:19][Step 1/2] usage = false
[12:27:19][Step 1/2] user = 5556
[12:27:19][Step 1/2] ; user-agent = "npm/{npm-version} node/{node-version} {platform} {arch}" (overridden)
[12:27:19][Step 1/2] userconfig = "/home2/build/.npmrc"
[12:27:19][Step 1/2] version = false
[12:27:19][Step 1/2] versions = false
[12:27:19][Step 1/2] viewer = "man"
так как вы можете видеть из выше НОЙ конфигурации версии узла v0.12.7, как это должно быть, но когда дело доходит до установки sqlite3.1.1, это какое-то образом использует v.0.10.26:
[Step 1/2] npm info install [email protected]
[12:27:29][Step 1/2]
[12:27:29][Step 1/2] > [email protected] install /Users/fe/TeamCity/buildAgent/work/c5a68e1c6d1f0013/build/install/bin/node_modules/my_package/node_modules/sqlite3
[12:27:29][Step 1/2] > node-pre-gyp install --fallback-to-build
[12:27:29][Step 1/2]
[12:27:29][Step 1/2] node-pre-gyp info it worked if it ends with ok
[12:27:29][Step 1/2] node-pre-gyp info using [email protected]
[12:27:29][Step 1/2] node-pre-gyp info using [email protected] | linux | x64
[12:27:29][Step 1/2] node-pre-gyp info build requesting source compile
[12:27:29][Step 1/2] gyp info it worked if it ends with ok
[12:27:29][Step 1/2] gyp info using [email protected]
[12:27:29][Step 1/2] gyp info using [email protected] | linux | x64
[12:27:29][Step 1/2] gyp info ok
[12:27:29][Step 1/2] gyp info it worked if it ends with ok
[12:27:29][Step 1/2] gyp info using [email protected]
кажется, строить нормально, но когда дело доходит до модульное тестирование, он не:
Error: Cannot find module '/Users/xxx/buildAgent/work/c5a68e1c6d1f0013/build/install/bin/node_modules/my_package/node_modules/sqlite3/lib/binding/node-v14-linux-x64/node_sqlite3.node'
[12:28:07][Step 1/2] make[1]: *** [CMakeFiles/my_package.dir/all] Error 2
[12:28:07][Step 1/2] at Function.Module._resolveFilename (module.js:336:15)
[12:28:07][Step 1/2] at Function.Module._load (module.js:278:25)
[12:28:07][Step 1/2] make: *** [all] Error 2
[12:28:07][Step 1/2] at Module.require (module.js:365:17)
[12:28:07][Step 1/2] at require (module.js:384:17)
[12:28:07][Step 1/2] at Object.<anonymous> (/Users/xxx/buildAgent/work/c5a68e1c6d1f0013/build/install/bin/node_modules/my_package/node_modules/sqlite3/lib/sqlite3.js:4:15)
[12:28:07][Step 1/2] at Module._compile (module.js:460:26)
[12:28:07][Step 1/2] at Object.Module._extensions..js (module.js:478:10)
[12:28:07][Step 1/2] at Module.load (module.js:355:32)
[12:28:07][Step 1/2] at Function.Module._load (module.js:310:12)
[12:28:07][Step 1/2] at Module.require (module.js:365:17)
[12:28:07][Step 1/2] at require (module.js:384:17)
[12:28:07][Step 1/2]
[12:28:07][Step 1/2]
[12:28:07][Step 1/2] 0% tests passed, 1 tests failed out of 1
Путь к модулю сборки на самом деле: /Users/ххх/buildAgent/работа/c5a68e1c6d1f0013/сборки/установить/bin/node_modules/my_package/node_modules/sqlite3/Библиотека/связывания/узел-v11-Linux-x64 /node_sqlite3.node
Почему с помощью узла 0.10.26 вместо 0.12.7 большой вопрос ,