как отличить запись пакета lib? - PullRequest
0 голосов
/ 29 января 2020

В настоящее время мой проект похож на

- app
  - packages
    - foo
      - dist/index.js
      - src/index.vue
  - src/main.js
  - lerna.json

, когда я использую свой пакет lib следующим образом:

// src/main.js
import Foo from 'foo'

Я хочу, чтобы entry было получено от packages/foo/src/index.vuelerna, так же как и из node_modules/foo....), так что hot-update активен, когда я редактирую index.vue.

, но когда я publish мой foo как npm пакет, так кто-то использует это будет также from 'foo'. лучший опыт - это entry это получение от node_modules/foo/dist/index.js

основной проблемы:

похоже на "main": "local ? src/index.vue : dist/index.js" (хаха). В каком-то смысле можно переключать dist/index.js и src/index.vue?

могут быть сотни .vue прекомпилированных в десятках наших проектов, когда компонент совместно используется, очень медленно.

каким-то образом я могу попробовать:

  • if else без tree shaking
// foo/index.js
if (process.env.local === true) {
  module.exports = require('src/index.vue')
} else {
  module.exports = require('dist/index.js')
}
  • с реальным путем при разработке локального (грязного и более открытого sh)
// main.js
import Foo from 'foo/src/index.vue'

Есть ли другой способ?

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