обновление кода в пакете зависимостей узла JS приводит к ошибке компиляции (здесь, в npm / Vue.js) - PullRequest
0 голосов
/ 22 декабря 2019

Я создал библиотеку Js, которую хочу использовать в некоторых проектах. Он не совсем стабилен и содержит несколько ошибок, над которыми я хочу поработать. Но как разрабатывать библиотеку, когда HMR не работает с зависимостями? Вариант использования:

  • создать новый проект Vue: vue create fooproject, перейти в этот каталог.
  • добавить модуль local javascript в качестве зависимости
    • вы можете скачать мою библиотеку , если хотите где-то в вашем каталоге ~ / tmp;Затем добавьте его, используя: npm install --save ~/tmp/vue-extensions # or where your lib lives.
  • Теперь ваши node_modules должны иметь символическую ссылку на этот каталог.
  • Run npm run serve - он компилирует проект Vue и запускаетвеб-сервер разработчиков. Оставьте этот терминал открытым.
  • Теперь измените некоторый код в локальной библиотеке vue-extensions - просто добавьте пробел в любом месте и сохраните.
  • Ничего не происходит - как и сама библиотекане был скомпилирован с изменением. Поиск по импорту в каталоге dist / . Это обычный AFAIK.
  • Теперь перейдите к vue-extensions dir и запустите npm run build - он должен собрать библиотеку и вернуть qith success.
  • В этот момент первый терминал долженизменение: Webpack должен обнаружить изменение кода и вызвать HMR - он ломается в первую очередь - я полагаю, потому что vue-extensionpoints.common.js был временно удален (перед повторным созданием) и webpack больше не находит его:
Module build failed (from ./node_modules/eslint-loader/index.js):
Error: ENOENT: no such file or directory, open '/home/christian/vue-extensionpoints/dist/vue-extensionpoints.common.js'

 @ ./src/main.js 7:0-50 10:8-23
 @ multi (webpack)-dev-server/client?http://192.168.4.3:8080/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

Это не проблема, просто перезапустите сборку: npm run serve

А теперь проблема: она снова ломается, со многими ошибками:

error: Unexpected newline between function and ( of function call (no-unexpected-multiline) at ../../Projekte/vue-extensionpoints/dist/vue-extensionpoints.common.js:88:10:
  86 | /******/ })
  87 | /************************************************************************/
> 88 | /******/ ({
     |          ^
  89 | 
  90 | /***/ "06cf":
  91 | /***/ (function(module, exports, __webpack_require__) {


error: 'exports' is defined but never used (no-unused-vars) at ../../Projekte/vue-extensionpoints/dist/vue-extensionpoints.common.js:135:25:
  133 | 
  134 | /***/ "1d80":
> 135 | /***/ (function(module, exports) {
      |                         ^
  136 | 
  137 | // `RequireObjectCoercible` abstract operation
  138 | // https://tc39.github.io/ecma262/#sec-requireobjectcoercible


error: 'exports' is defined but never used (no-unused-vars) at ../../Projekte/vue-extensionpoints/dist/vue-extensionpoints.common.js:370:25:
  368 | 
  369 | /***/ "5135":
> 370 | /***/ (function(module, exports) {
      |                         ^
  371 | 
  372 | var hasOwnProperty = {}.hasOwnProperty;
  373 | 


error: 'exports' is defined but never used (no-unused-vars) at ../../Projekte/vue-extensionpoints/dist/vue-extensionpoints.common.js:417:25:
  415 | 
  416 | /***/ "5c6c":
> 417 | /***/ (function(module, exports) {
      |                         ^
  418 | 
  419 | module.exports = function (bitmap, value) {
  420 |   return {


error: 'exports' is defined but never used (no-unused-vars) at ../../Projekte/vue-extensionpoints/dist/vue-extensionpoints.common.js:603:25:

[...and so on...]

Просто покончите с Ctrl + C и снова запустите npm run serve , и это работает.

A npm cache clear [--force] не помогает.

Как, черт возьми, я долженизменить библиотеку и перезагрузить ее с помощью HMR, когда мне ВСЕГДА придется перестраивать библиотеку, а также дважды останавливать и перезагружать основной сервер? Это делает разработку невозможной, за исключением того, что у вас слишком много времени и терпения для подобных вещей.

Должен быть (очевидно) более простой способ выполнения разработки библиотеки, верно?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...