需要帮助使用yarn工作区和lerna为vue和nuxt设置前端monoreo



我正在尝试使用yarn工作区和lerna为前端项目设置monoreo。将有一个共享组件库,用于其中的所有应用程序包。

项目结构如下:

root
├── lerna.json
├── package.json
└── packages
├── ui-library
│   ├── src/main.js
│   ├── dist/library.common.js  
│   └── package.json
└── app

当我在app中导入ui-library时,它会给我各种各样的lint错误。


程序包/ui库

  1. @vue/cli创建的一个常规vue项目。

    vue create ui-library

  2. src/main.js公开自动生成的组件src/App.vue

    export { default as App } from './App'

  3. 我添加了一个脚本来将项目构建为库

    vue-cli-service build --target lib --name library src/main.js

  4. 构建脚本生成dist/library.common.js以及其他内容。

ui-library/package.json中,

{
"name": "@<org>/ui-library",
"version": "0.0.1-alpha",
"private": true,
"main": "./dist/library.common.js",
"scripts": {
"build": "vue-cli-service build --target lib --name library src/main.js",
},
.
.
.
}

软件包/应用程序

  1. 这是npx create-nuxt-app app创建的一个nuxt项目。

  2. 我已经安装了像这样的本地ui库包

    yarn workspace app add @<org>/ui-library@0.0.1-alpha

它成功完成。

除了像这个一样在pages/index.vue中导入应用程序组件外,我在这里什么都没做

<template>
<app />
</template>
<script>
import { App } from '@<org>/ui-library'
export default {
components: {
App
}
}
</script>

但由于lint错误,应用程序无法运行。

$ yarn workspace app dev
.
.
app: pathtopackagesui-librarydistlibrary.common.js
app:    88:10  error  Unexpected newline between function and ( of function call
no-unexpected-multiline
app:    97:42  error  '_unused_webpack_default_export' is assigned a value but never used
no-unused-vars
app:   102:17  error  'module' is defined but never used
no-unused-vars
.
.
app:    97:42  error  '_unused_webpack_default_export' is assigned a value but never used
no-unused-vars
app:   102:17  error  'module' is defined but never used
no-unused-vars'HelloWorldvue_type_style_index_0_id_b9167eee_scoped_true_lang_css_' is assigned a value but never used  no-unused-vars
app:   449:5   error  'Appvue_type_style_index_0_lang_css_' is assigned a value but never used                                 no-unused-vars
app: ✖ 17 problems (17 errors, 0 warnings)
app:   1 error and 0 warnings potentially fixable with the `--fix` option.

忽略这些lint错误的方法是什么?还是我的方法不正确?任何帮助都将不胜感激。提前谢谢。

现在,应用程序被划分为模块(读取DDD(,而不是共享组件库。每个模块都是开发人员或团队的责任,需要共享的内容都是使用模块联盟来完成的。

最新更新