- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在尝试使用 lerna
的 monorepo 设计。对于我们的 react 应用程序。
这个想法是创建一个 repo,它将所有的 react 项目作为 lerna
包以及一些在应用程序之间共享的通用模块/组件。
现在所有这些通用模块/组件都是 es6 模块。没有被转译。因为公共(public)模块也在不断发展。如果我们构建/转换它们,我确信在那之后 react HMR 将不起作用(一个疯狂的猜测)。以下是我的目录结构
package.json
lerna.json
|--packages
|--common
|--react-app
|--constants
|--utilitiescommon
包含常见的 react 元素,如 table,accordion
等等,它们被导出为默认的 es6 模块。react-app
进口 common
如dependency
. react-app
有 webpack 构建配置集。
现在当我导入 common
模块到我的react-app
通天塔 transform
失败并出现此错误
Button.component.jsx 7:19
Module parse failed: Unexpected token (7:19)
You may need an appropriate loader to handle this file type.
| const { Search } = Input;
| class TextBoxWithButton extends React.Component {
> static propTypes = {
| placeholder: PropTypes.string.isRequired,
| onAction: PropTypes.func.isRequired,
@ ./src/App/Modules/Todo/Components/Header/Header.component.jsx 10:0-111 16:25-41
@ ./src/App/Modules/Todo/Todo.component.jsx
@ ./src/App/Router/index.jsx
@ ./src/App/Layout/index.jsx
@ ./src/App/index.jsx
@ ./src/App.hot.js
@ ./src/index.jsx
babel-loader
无法解析和转译
node_nodules
中的内容文件夹,这是有道理的,因为所有依赖项都应该已经被转译。但不总是。如果您管理本地依赖项,则无法始终构建它们(这就是我的想法)
bable-loader
的解决方案不排除
node_modules
或忽略
@mypackage
在排除正则表达式。但在我的情况下没有任何效果。
exlucde: /node_modules/
来自 babel-loader
=> 不工作 require.resolve('babel-loader')
=> 不工作 resolve.symlinks= false
. resolve.modules='node_modules'
或者path.resove(__dirname,'node_modules')
=> 不工作 babel-loader
包括include: [srcPath, lernaPackagesPath]
, 最佳答案
babel-loader
默认情况下不会转译 node_modules
中的任何内容.您可以在 node_modules
中明确说明要转换的内容但在 @babel7.0.0
之后这似乎也不起作用。
还有.babelrc
的范围在 @babel7.0.0
中引入.
根据我在正常情况下所做的研究 node_modules
期望已转译 commonjs
或 umd
模块。可以由任何应用程序导入。在我的情况下,我的包/组件,所有 es6
需要转译的模块。我的 webpack 构建失败了,因为 babel-loader
只是无视他们。
所以我决定使用@babel/cli
要转换我的组件所在的每个包,我必须添加 .babelrc
连同我的组件包的其他配置并使用 @babel/cli
构建它们
这是scripts
在我的package.json
"scripts": {
"start": "babel src --watch --out-dir dist --source-maps inline --copy-files --ignore spec.js,spec.jsx"
},
{
"name": "@pkg/components",
"version": "1.0.1",
"description": "a repository for react common components. may or may not be dependent on elements",
"main": "dist/index.js",
"author": "hannad rehman",
"license": "MIT",
"scripts": {
"start": "babel src --watch --out-dir dist --source-maps inline --copy-files --ignore spec.js,spec.jsx"
},
"dependencies": {
"@pkg/constants": "^1.0.1",
"@pkg/elements": "^1.0.1"
},
"peerDependencies": {
"prop-types": "^15.6.2",
"react": "^16.4.2",
"react-router-dom": "^4.3.1"
}
}
babel
具有监视模式,可确保在发生更改时始终进行转译。
HMR
按预期工作。
{
test: /\.js(x?)$/,
include: [/node_modules\/@pkg/],
use: [
'thread-loader',
{
loader: 'babel-loader',
options: {
cacheDirectory: true,
configFile: path.resolve(
__dirname,
'../../../../',
`${env.appConfig.folderSrc}/babel.config.js`,
),
},
},
],
}
关于babeljs - 即使在排除 block 中指定忽略包(lerna)后,babel-loader 也不会在 node_modules 中转译包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52234094/
要旨 我有一个 monorepo,我正在使用 yarn workspaces和 lerna来管理它。直到现在我都没有问题。我需要知道自上次发布以来所有更改的包。 问题 所以我跑 lerna chang
我正在尝试使用 Lerna 设置我的 monorepo。该计划是通过提取应该是他们自己的包的代码块来重构现有项目。我跑了lerna init ,我当前的设置如下所示: project/ packa
我有一个 Lerna 项目,直到最近才使用 lerna bootstrap --hoist。这很有效,但我发现许多子文件夹中的 devDependencies 大部分是相同的。升级到 Lerna v3
我有三个包: A , 取决于 C B , 取决于 C C 使用 lerna run build 时, C在 A 之前构建和 B (好的!) 但是当我开始监视任务时lerna run watch , C
我们正在迁移我们的 monorepo 以使用 Lerna . Lerna 支持 NPM 和 Yarn,此外还允许使用 Yarn 工作区进行配置。我不清楚带有 Yarn 工作区的 Lerna 是否比带有
我正在迁移到 pnpm 以管理来自 lerna 的 monorepo。但是,在 CI 中,有一个遗留命令使用 lerna 的 --since 选项。 lerna run lint --since or
我在 lerna 包下有 2 个项目。其中一个是一个包,另一个是一个cra网站。当我在每个包下执行“yarn start”时,我可以看到构建文件夹和分别在开发服务器中加载的网站: 包 1 >> "st
在我的 monorepo 中,我有 3 个包 package1 , package2 , package3 ,每个包都包含一个名为 build 的 npm 脚本. 但是,这些包没有链接在一起。即没有r
我的结构如下: 包.json lerna.json 包 myproj-util 包.json myproj-模式 package.json -- 在 myproj-util 上有开发依赖 这两个项目都
我有一个由 Lerna 驱动的 monorepo,其中包含发布到 NPM 的各种包。其中有各种辅助函数,它们位于 repo 的根目录中,并由几个包共享。 我遇到的问题是,当每个包都是用 Babel 构
对于 yarn workspaces,我有一个常见(或不那么 coomon)的场景并没有在网上找到适合我的指南。 yarn 工作区看起来像这样: - monorepo - packages
我的根目录中有一个 webpack.config.js (在包含 packages*.json 文件的目录之外),当我启动 lerna 时运行 build 然后出现此错误: **ERROR OUTPU
我正在使用 lerna 来管理 React 组件库。我的一些组件既有来自 npm 注册表的外部依赖项,也有内部依赖项,存储库中的同级包。 我正在尝试使用 lerna add 命令将内部依赖项添加到另一
使用 lerna 和本地依赖项的正确方法是什么? 我已经在 mono 存储库中配置了两个模块,以将 lerna 与本地依赖项一起使用。我预料到了 $ lerna bootstrap $ lerna r
我有一个 lerna 存储库,其中包含以通常结构组织的多个包: package.json /packages - alpha package.json - bravo pack
假设两个项目(例如 my-app 和 my-ui)使用 webpack 别名将“components”解析为“./src/components”。我使用 Lerna 在本地“链接”这个项目并简化开发,
当使用 lerna publish 发布包时,如果检测到循环依赖,则会输出警告。 有没有办法让 lerna 检查循环依赖而不发布包? 最佳答案 lerna bootstrap 也会输出循环依赖。 关于
我有一个 lerna 脚本( lerna dev ),它使用 --parallel 启动几个包的开发服务器选项(如果我不使用该选项,则只会启动第一个服务,而不会启动其他服务)。这些服务器在不同端口上以
我正在使用 Lerna monorepo。我经常看到一个包从另一个包的深处导入,例如: import { SomeType } from "@schema/folder/folder/file.ts"
我有一个预先存在的项目,我想将其导入到我现有的使用 yarn 工作区的 lerna monorepo 中。 命令: I've tried running all of the following co
我是一名优秀的程序员,十分优秀!