我创建了一个简单的例子来说明我的问题:Github repo。
我有一个lerna monorepo,在packages
文件夹中有两个npm包,这些包被称为:
utils:导出函数:
export const add = (a:number, b: number) => a + b
组件库::导出一个简单的功能组件:
import React from 'react';
import { add } from '@project/utils';
export const MyComponent = () => <div>{add(2, 2)}</div>;
monorepo的根有一个tsconfig.json
,它定义了一个路径
键,用于将@project/*
形式的任何导入映射到包。
{
"compilerOptions": {
"jsx": "react",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"moduleResolution": "node",
"allowJs": true,
"baseUrl": ".",
"paths": {
"@project/*": ["packages/*/src"]
}
},
"exclude": ["**/build/**"]
}
每个包都有一个汇总。配置。js
,两者基本相同(尽管我们只使用组件库
包中的一个):
import typescript from '@rollup/plugin-typescript';
import commonjs from '@rollup/plugin-commonjs';
export default {
input: 'src/index.tsx',
output: {
dir: './build',
format: 'cjs'
},
plugins: [
commonjs(),
typescript({ tsconfig: '../../tsconfig.json'}),
]
};
因此,它们都使用roottsconfig中定义的路径。json
,他们使用一个插件来传输Typescript。
组件库
从@project/utils
导入一个名为add(a,b)
的函数。
我的目标是创建这个库的构建(使用rollup
),而不必先构建utils
包。换句话说,我想构建组件库
解析从utils
到utils
源代码的导入,而不是node_modules
中符号链接包中的构建文件夹(即,不使用lerna创建的符号链接)。
我几乎实现了这一点,只是在组件库
中运行构建脚本时,出现了一个错误:
src/index。tsx→ ./建筑[!] 错误:意外标记(请注意,您需要插件来导入非JavaScript文件)。。\utils\src\index。ts(1:21)1:export const add=(a:number,b:number)=
按照我的理解,这意味着导入的解析工作正常,但rollup并不是传输来自外部依赖项的TS文件。
如何让rollup通过rollup将UTIL中的文件包含在传输中?
对于monorepo,许多(如果不是全部的话)包裹都将被吊起。所以要下定决心让自己看起来更高。尝试使用nodeResolve选项:
{
rootDir: path.join(process.cwd(), '..')
}
如果这真的是问题所在
按照我的理解,这意味着导入的解析工作正常,但rollup并不是传输来自外部依赖项的TS文件。
您可以从@rollup/plugin Babel
运行Babel,并直接用Babel传输ts文件。巴贝尔将检查节点模块中的文件
。
我正在开发一个NPM包,它使用rollup绑定并发布到NPM。我想了解一个依赖项是否应该通过汇总绑定,最佳实践是什么。以下是我的逐步分析: > “src”中使用的每个依赖项都应该添加到“deps”或“peerDeps”中 如果您选择只将其放在“peerDeps”中,而不是“deps”,考虑到本地构建目的,最好添加到“devDeps”。否则,您可能必须使用第三方工具在“peerDeps”中安装依赖项
我可以像这样创建sessionfactory bean。 但是,使用带有jar的类路径或列出hbm.xml文件的@EntityScan或@code仍然不能生成托管类型:classcom.opensymphony.workflow.spi.hibernate.HibernateMONtStep 我看到了一些答案,您使用不同的类来生成sessionFactory bean。有没有一种简单的方法可以获取
我正试图让maven下载所有的依赖项(编译、测试、插件等)。)这样我就可以避免让我们的dockerized构建浪费不必要的时间一遍又一遍地下载它们。 我们已经对maven build进行了dockerized,这样我们就可以从jenkins运行它,而无需在jenkins机器上安装大量构建特定的依赖项(Java、redis、maven依赖项等)。我们的构建依赖于增量docker构建,它只执行实际需要
问题内容: 我正在尝试为我的包裹写东西。我的程序包需要指定对另一个git repo的依赖。 这是我到目前为止所拥有的: 当我跑步时: 我懂了 找不到满足SomePrivateLib> = 0.1.0要求的版本(来自分析)(来自版本:)找不到SomePrivateLib> = 0.1.0(来自分析)的匹配分布 我究竟做错了什么 ? 问题答案: 您可以在此处找到正确的方法。 关键不是提供指向git存储
目前,在我的中有一条关于支持库不使用相同版本的警告。 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到了27.0.1、23.4.0版本。示例包括com.android.support:animated-vector-drawable:27.0.1和com.android.support:cardview-v7:23.4.0 还有一个很好的方
Eclipse-Neon Maven Java原型-4项目 嗨,我生成了一个包含4个项目的maven原型? 请你帮我做那件事好吗。因为我试过但没有成功 我的尝试: 我添加了对BULK的框架依赖 我添加了对bulk_ear的框架依赖 但是当我安装Maven时,framework.jar没有打包到EAR。