Skip to content
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

Ошибка импорта при установке с использованием 'npm ci' #16

Open
neomedved opened this issue Dec 2, 2020 · 5 comments

Comments

@neomedved
Copy link

После установки зависимостей через npm ci попытка использования require('phpmorphy') приводит к ошибке:
Error: Cannot find module './dist/index'
Собственно, проблема в том, что в node_modules/phpmorphy нет папки dist. Если вручную запустить npm run build, то всё работает нормально.
При этом использование npm install не вызывает такой проблемы.

npm v6.14.9, node v10.23

@victor-chauzov
Copy link

с phpmorphy до сих пор работает модуль из PHP
а в варианте с NODE.JS - глухо
npm install phpmorphy вообще не работает - выдает что попало..
PhpStorm 2020.3.1 node v16.13.1 npm v8.3.0 @vue/cli 4.5.15

кто-нибудь запустил библиотеку?
есть ли удачный опыт?

@neomedved
Copy link
Author

@victor-chauzov проблему с импортом можно решить отдельным запуском npm run build в папке node_modules/phpmorphy. Можно добавить строчку в scripts в package.json, чтобы запускать билд при каждой установке:
“postinstall”: “npm run build --prefix ./node_modules/phpmorphy”,
Ещё есть вариант использовать yarn в качестве менеджера пакетов вместо npm.

@victor-chauzov
Copy link

victor-chauzov commented Dec 14, 2021

@neomedved выполнил
git clone https://github.com/antixrist/node-phpmorphy.git

приехало в d:\node-phpmorphy
переходим в d:\node-phpmorphy и выполняем npm install
выполняется с предупреждениями но без ошибок

d:\node-phpmorphy>npm install

> [email protected] install
> in-install && npm run build || not-in-install
> [email protected] prepublish
> in-publish && npm run test || not-in-publish

added 670 packages, and audited 671 packages in 43s
25 packages are looking for funding
  run `npm fund` for details
  
21 vulnerabilities (14 moderate, 6 high, 1 critical)
To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

выполнил
npm audit fix
npm audit fix --force
0 ошибок и предупреждений

далее

d:\node-phpmorphy>npm run build

> [email protected] build
> run-s clean babel

> [email protected] clean
> rm -rf dist && mkdir dist

"rm" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
ERROR: "clean" exited with 1.

далее

d:\node-phpmorphy>npm install phpmorphy

added 1 package, and audited 429 packages in 3s

53 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

далее

d:\node-phpmorphy\node_modules\phpmorphy>npm run build

> [email protected] build
> run-s clean babel


> [email protected] clean
> rm -rf dist && mkdir dist

"rm" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
ERROR: "clean" exited with 1.

что не так делаю?

@VanyakaCompany
Copy link

VanyakaCompany commented Dec 14, 2021

В документации написано

Не используйте виндовую командную строку - установите Git for Windows и запускайте все команды в Git Bash.

Думаю, это должно решить проблему, т.к. rm -rf dist && mkdir dist - это явно bash-команда.

@victor-chauzov
Copy link

victor-chauzov commented Dec 14, 2021

Спасибо @VanyakaCompany помогло!
в windows нужно перейти в каталог проекта. нажать правую кнопку мыши (не на файле или каталога - на пустом месте) - появится контекстное меню. в нем будет Git Bash here - запустится в текущем каталоге проекта. и уже в гите npm install
а затем npm install phpmorphy

в этом случае в каталоге dist появятся желанные скомпилированные файлы

пример , который у меня заработал
index.js

const Morphy = require('phpmorphy')

const morphy = new Morphy('ru', {
  storage: Morphy.STORAGE_MEM,
  predict_by_suffix: true,
  predict_by_db: true,
  graminfo_as_text: true,
  use_ancodes_cache: false,
  resolve_ancodes: Morphy.RESOLVE_ANCODES_AS_TEXT,
})

console.log(morphy.lemmatize('Глокая', Morphy.NORMAL))
console.log(morphy.isLastPredicted())

const words = ['Собаки', 'Кошка']
console.log(morphy.lemmatize(words))

const word = 'ДУШкный'
const paradigms = morphy.findWord(word)

if (!paradigms) {
  throw new Error("Can't find word")
}

paradigms.getByPartOfSpeech('С').forEach(paradigm => {
  console.log('Существительное: ', paradigm.getBaseForm())

  if (paradigm.hasGrammems('НО')) {
    console.log(`${word} - неодушевлённое`)
  }
})

package.json

{
  "name": "morphytest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "phpmorphy": "^2.3.2"
  }
} 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants