我的 CI 中有一份setup工作,它安装所有 npm 包并将它们存储在缓存中:
setup:
stage: pre-build
cache:
untracked: true
when: on_success
key:
files:
- repo-hash
prefix: workspace
script:
- yarn install --frozen-lockfile
Run Code Online (Sandbox Code Playgroud)
目前,如果 repo-hash 在两个管道之间没有更改,则作业会成功下载现有缓存,但它仍然运行yarn install --frozen-lockfile。
如何更改此行为,以便如果缓存存在,则跳过此作业?
我的目标是Switch在 Formik 表单中使用基于(来自 React Native)的自定义组件。下面是表单组件的代码:
class NewPreferences extends React.Component {
render() {
return(
<View style={styles.mainContainer}>
<View style={styles.newPreferencesContainer}>
<Formik
initialValues={{
food: true
}}
onSubmit={async (values, action) => {
await this.props.onSubmitPress(values)
action.setSubmitting(false)
}}
render={({
values,
errors,
touched,
handleChange,
handleBlur,
handleSubmit,
isSubmitting,
}) => (
<View style={styles.formikNewPreferences}>
<View style={styles.itemRow}>
<Field
source={images.food.uri}
onChange={handleChange('food')}
value={values.food}
name="food"
component={ToggleButton}
/>
</View>
<TouchableOpacity
style={styles.button}
onPress={handleSubmit}
disabled={isSubmitting}
>
<Text>Login</Text>
</TouchableOpacity>
</View>
)}
/>
</View>
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
该组件ToggleButton如下所示:
class ToggleButton extends React.Component<ToggleButtonInterface> {
render() { …Run Code Online (Sandbox Code Playgroud) 我想在 Nodejs 中复制 React Context 的行为,但我正在努力解决它。
在反应,通过创建只有一个背景下,我可以提供,在我的组件占用不同的值,取决于value给予<Provider/>。所以以下工作:
const MyContext = React.createContext(0);
const MyConsumer = () => {
return (
<MyContext.Consumer>
{value => {
return <div>{value}</div>
}}
</MyContext.Consumer>
)
}
const App = () =>
<React.Fragment>
<MyContext.Provider value={1}>
<MyConsumer/>
</MyContext.Provider>
<MyContext.Provider value={2}>
<MyConsumer/>
</MyContext.Provider>
</React.Fragment>;
ReactDOM.render(
<App/>,
document.getElementById("react")
);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="react"></div>Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在 Nodejs 中实现它。我已经查看了 React Context 的源代码,但它没有多大帮助......这是我到目前为止所得到的:
// context.js
export const createContext = (defaultValue: number) => {
const context = {
value: defaultValue, …Run Code Online (Sandbox Code Playgroud) 我目前正在使用 AirflowPostgresToGoogleCloudStorageOperator并将GoogleCloudStorageToBigQueryOperator我的 Postgres 数据库(托管在 AWS RDS 上)的每个表导出到 BigQuery。它有效,但我有 75 个表,所以 Airflow 创建了 75 * 2 个工作。由于我是 Airflow 的新手,我不知道这是否是一个好习惯。
无论如何,我想找到一种方法将所有表一次(pg_dump?)导出到 GCS,然后将它们导入 BigQuery。
postgresql google-cloud-storage google-bigquery airflow google-cloud-composer
我正在用 Typescript 编写一个 npm 包,它实现了多个功能。
\n\n目前,我正在导入文件中的所有函数index.ts并立即重新导出它们:
import { functionA, functionB } from "./file1";\nimport { functionC, functionD } from "./file2";\nexport {\n function A,\n function B,\n function C,\n function D, \n}\nRun Code Online (Sandbox Code Playgroud)\n\n我可以在其他项目中使用它们import { functionA }\xc2\xa0from "package";
但是我想导出这些函数,以便我可以在另一个项目中使用这样的包(不使用类):
\n\nimport _ from "package"\nconst foo = _.functionA(...);\nconst bar = _.functionB(...);\nRun Code Online (Sandbox Code Playgroud)\n\n这与Lodash的实现类似。我在很多地方进行了搜索,但是在打字稿中导出内容非常令人困惑(例如,index.d.ts在 lodash 中,有两个导出 for_和 some declare const, declare namespacestuff...)
reactjs ×2
airflow ×1
caching ×1
formik ×1
gitlab ×1
gitlab-ci ×1
javascript ×1
module ×1
node.js ×1
npm ×1
package ×1
postgresql ×1
react-native ×1
typescript ×1
yarnpkg ×1