簡體   English   中英

如何在我的項目中使用本地版本的完整日歷?

[英]How can I use a local version of full calendar in my project?

我正在嘗試查看是否可以解決我們在完整日歷中遇到的幾個問題。

我已經使用git clone --recursive git://github.com/fullcalendar/fullcalendar.git克隆了完整的日歷存儲庫並運行yarn install

我已經進入我們的項目使用npm link來鏈接包,如下所示:

npm link \
 ~/dev/fullcalendar/packages/common \
 ~/dev/fullcalendar/packages/core \
 ~/dev/fullcalendar/packages/interaction \
 ~/dev/fullcalendar/packages-premium/premium-common \
 ~/dev/fullcalendar/packages-premium/resource-common \
 ~/dev/fullcalendar/packages-premium/resource-timeline \
 ~/dev/fullcalendar/packages-premium/scrollgrid \
 ~/dev/fullcalendar/packages-premium/timeline \
 ~/dev/fullcalendar/packages-contrib/vue

但是,這些包似乎並沒有很好地相互配合,似乎他們看不到對方,所以當我嘗試運行項目時遇到很多很多錯誤,例如

ERROR in /Users/abarratt/dev/main/src/PODFather-Main/symfather/node_modules/@fullcalendar/common/main.d.ts(96,36):
96:36 Cannot find module './util/scrollbar-width' or its corresponding type declarations.
    94 | export { CssDimValue, ScrollerLike, SectionConfig, ColProps, ChunkConfig, hasShrinkWidth, renderMicroColGroup, getScrollGridClassNames, getSectionClassNames, getSectionHasLiquidHeight, getAllowYScrolling, renderChunkContent, computeShrinkWidth, ChunkContentCallbackArgs, sanitizeShrinkWidth, ChunkConfigRowContent, ChunkConfigContent, isColPropsEqual, renderScrollShim, getStickyFooterScrollbar, getStickyHeaderDates, } from './scrollgrid/util';
    95 | export { Scroller, ScrollerProps, OverflowValue } from './scrollgrid/Scroller';
  > 96 | export { getScrollbarWidths } from './util/scrollbar-width';
       |                                    ^
    97 | export { RefMap } from './util/RefMap';
    98 | export { getIsRtlScrollbarOnLeft } from './util/scrollbar-side';
    99 | export { NowTimer } from './NowTimer';

我假設這里有一些紗線工作區與 npm 的戰斗,但也許這只是我需要調整的一些簡單的事情,或者我忽略了一些步驟。

任何幫助將非常感激:)

答案似乎是 yalc。 通過使用yarn run build以及yarn run build-contrib進行構建,最后在 vue package 中使用手動yarn run ci (因為 build-contrib 腳本中似乎出現了問題,所以它沒有被正確觸發),我是然后能夠正確地將這些發布和符號鏈接到我的 npm 項目中,所有工作區鏈接都已解決。

我編寫了以下 bash 腳本來為我完成這項工作: yalc-init-local-fullcalendar-link.sh

#!/bin/sh

if ! command -v yalc &> /dev/null; then
    echo ""
    echo "Hi,"
    echo ""
    echo "You must install yalc globally to link the local full calendar packages."
    echo "You can do that by running"
    echo "sudo npm install yalc -g"
    echo ""
    echo "Andy Barratt"
    echo ""
    exit
fi

START_DIR=`pwd`

if [[ -z "$FULLCALENDAR_DIR" ]]; then
  FULLCALENDAR_DIR="$HOME/dev/fullcalendar"
fi

yalc_publish_packages_in_folder()
{
    cd $@
    for package in */ ; do
        cd $package
        echo "Publishing `pwd`"
        yalc publish
        cd ..
    done
}

# Do some cleanup first
git checkout package.json
rm -rf .yalc
rm yalc.lock
rm -rf node_modules
npm ci

# Build full calendar
cd $FULLCALENDAR_DIR
yarn run build
yarn run contrib:build
# seems one of the other contributing packages has a bug in it,
# so we'll go ahead and run the vue one manually for now.
cd $FULLCALENDAR_DIR/packages-contrib/vue
yarn run ci

yalc_publish_packages_in_folder $FULLCALENDAR_DIR/packages
yalc_publish_packages_in_folder $FULLCALENDAR_DIR/packages-contrib
yalc_publish_packages_in_folder $FULLCALENDAR_DIR/packages-premium

cd $START_DIR
for package in node_modules/@fullcalendar/*/ ; do
    package_name=@fullcalendar/`basename $package`
    echo Linking $package_name
    yalc link $package_name
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM