ПРЕДИСЛОВИЕ : Репозиторий, который я разветвлял из , прекрасно устанавливает через NPM, когда я устанавливаю его как пакет из реестра NPM.В настоящее время я полагаю, что существует некоторая разница между тем, как устанавливаются каталоги при установке пакета из реестра, в отличие от установки непосредственно из URL-адреса GitHub в файле package.json , и этовызывая оператор require () , который пытается найти модуль babel-register для сбоя во время выполнения сценария prepack . Если кто-то может указать мне на документ, который четко объясняет шаги, предпринимаемые NPM при установке пакета из реестра NPM, это может помочь мне понять это.
У меня есть репозиторий GitHub, которыйЯ разветвился:
https://github.com/roschler/zos-cli
Я пытаюсь установить пакет как зависимость в моем пакете Node.JS, используя, как мне кажется, правильный формат для ссылки на репозиторий и ветку GitHub, как показано ниже в моем package.json file:
{
"name": "basil",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --mode production"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"openzeppelin-zos": "^1.9.1"
},
"devDependencies": {
"ajv": "^6.5.1",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"babel-register": "^6.26.0",
"webpack": "^4.12.0",
"webpack-cli": "^3.0.3",
"zos": "roschler/zos-cli.git#development"
}
}
Однако, когда я выполняю npm install после внесения этого изменения, я получаю следующую ошибку:
$ npm install
> zos@1.0.0 prepack /home/robert/.npm/_cacache/tmp/git-clone-d4bae66a
> truffle compile && rm -rf lib && babel src --out-dir lib
Error: Cannot find module 'babel-register'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
at Function.Module._load (internal/modules/cjs/loader.js:520:25)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/robert/.npm/_cacache/tmp/git-clone-d4bae66a/truffle.js:1:63)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
Я дважды проверил, и необходимые элементы babel находятся в подкаталоге node_modules моего проекта:
$ find . -regex .*?babel-register
./node_modules/babel-register
Затем я попытался установить Babelглобальная версия командной строки, и если вы посмотрите на мой package.json файл, я попытался установить версию Node API в свой проект согласно их документам:
https://babeljs.io/blog/2015/10/31/setting-up-babel-6
$ npm install --global babel-cli
$ npm install --save-dev babel-core
И я все еще получаюточно такая же ошибка вывода.Почему он по-прежнему жалуется на невозможность найти babel-register и как я могу это исправить?
UPDATE : я попытался выполнить полную глобальную установку, как показано ниже, иУ меня все еще есть та же самая ошибка:
npm install -g ajv
npm install -g webpack
npm install -g webpack-cli
npm install -g babel-loader babel-core babel-preset-env babel-preset-react babel-register
# Created a .babelrc file in my project directory with this content:
{
"presets": [
["env", {
"targets": {
"node": "8.9"
}
}],
"react"
],
"plugins": ["transform-object-rest-spread"]
}
ОБНОВЛЕНИЕ 2 : Нашел эту страницу в регистре Вавилона:
https://new.babeljs.io/docs/en/next/babel-register.html
ПопробовалРекомендуемая установка npm:
npm install @babel/core @babel/register --save-dev
Все еще не повезло.