tachybase_todo/docs/tr-TR/welcome/release/v12-changelog.md
jack zhang 5df3b0e75d
refactor!: plugins build and plugins load (#2253)
* refactor: plugin build and plugin template

* refactor: plugins' deps

* refactor: plugins bugs

* feat: add plugin static middleware

* fix: bugs

* refactor: frontend plugin add from remote

* refactor: delete useless app/client/plugins

* fix: requirejs move to local

* fix: tests case

* refactor: add src/client and src/server dir check

* fix: lodash tree shaking

* refactor: add BUILD_TIP

* refactor: add file size tip

* fix: bugs

* fix: bug

* fix: change china-division

* fix: change plugins response

* fix: recover dynamicImport

* fix: change server src entry

* fix: test error

* fix: plugins sourcemap => false

* fix: production file error

* refactor: change build tools to vite and tsup

* fix: yarn.lock

* fix: bugs

* fix: server build bugs

* fix: delete .fatherrc.ts

* fix: bug

* fix: bug

* fix: bugs

* fix: bugs

* fix: bugs

* refactor: add plugin d.ts

* refactor: delete fatherrc

* refactor: delete father scripts

* refactor: build bug

* fix: bug

* fix: deps adjust

* fix: add build tips

* fix: bug

* refactor: ignore plugins when build client

* docs: update doc

* refactor: docs and build

* fix: bug

* refactor: build deps

* fix: add USER_REMOTE_PLUGIN env

* feat: add plugin static cache

* feat: add build deps cache

* fix: bugs

* test: add test

* fix: add plugin depden on plugin tip

* fix: adjust shouldDevDependencies

* fix: deps

* fix: ajust deps

* fix: mobile style error

* fix: map error

* fix: test

* fix: bug

* feat: lodash and dayjs import from themself

* feat: @emotion/css 、ahooks and lodash to global

* fix: theme-editor plugin error

* fix: review

* feat: move all plugins' dependencies to devDependencies

* feat: change build

* feat: add devPlugins

* fix: bug

* fix: bugs

* fix: bugs

* fix: bugs

* feat: build bugs

* fix: bugs

* fix: bugs

* fix: review

* fix: bug

* fix: change deps build

* fix: bugs

* fix: bug

* fix: bug

* fix: bugs

* fix: bug

* fix: bug

* fix: multi language

* fix: dist

* fix: cronstrue

* fix: getPackageClientStaticUrl

* fix: antd dayjs locale

* fix: plugin' d.ts import from dist

* fix: multi language

* fix: build types error

* fix: requireModule

* fix: plugin lifecycle

* fix: client resource

* fix: improve code

* fix: locale

* feat: custom build

* fix: require locale

* fix: improve code

* fix: improve code

* fix: skip preset

* fix: collection undefined

* feat: yarn build

* fix: remove enabled

* fix: update dockerfile

* fix: formily version

* docs: update v12 changelog

* fix: devDependencies

* feat: @nocobase/app

* feat: generateAppDir

* fix: improve code

* fix: 0.11.1-alpha.5

* fix: missing @nocobase/client

* fix: error

* fix: add .npmignore

* feat: upgrade antd version

* fix: dependencies

* fix: peerDependencies

* fix: remove china-division dep

* fix: toposort deps

* fix: update dockerfile

* fix: plugin template

* fix: app client outputPath

* feat: update docs

* fix: nginx server root

* fix: storage/.app-dev

* fix: getChinaDivisionData

* feat: plugin info

* feat: update docs

* fix: docs menu

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-08-02 00:07:52 +08:00

2.5 KiB
Raw Blame History

v0.12Update instructions

Features

  • In the production environment, the plugin loading process will be changed from directly importing them locally to dynamically loading them from the server. This change is being made in preparation for the upcoming version, which will support online installation and updates of plugins.

Update operation

yarn clean
yarn install
yarn build

Break changes

Plugin's devDependencies and dependencies

The dependencies of the plugin are divided into its own dependencies and global dependencies. Global dependencies are provided by @nocobase/server and @nocobase/client, and will not be packaged into the plugin product. Its own dependencies will be packaged into the product.

Because the dependencies of the plugin itself will be packaged into the product (including the npm packages that the server depends on, which will also be packaged into dist/node_modules), when developing the plugin, all dependencies should be placed in devDependencies.

{
  "dependencies": {
-   "@nocobase/server": "^0.11.0",
-   "dayjs": "^4.17.21"
  }
  "devDependencies": {
+   "@nocobase/server": "^0.11.0",
+   "dayjs": "^4.17.21"
  }
}

More information about updates and global plugin lists, see: Plugin dependency management.

Upgrade formily version from 2.2.6 to 2.2.7

All @formily/xx are upgraded from 2.2.6 to 2.2.7, please update the dependencies. For example:

{
  "dependencies": {
-   "@formily/antd": "2.2.26",
+   "@formily/antd": "2.2.27",
  }
}

The bundle of plugin has changed from lib to dist

The plugin bundle has changed from lib to dist, so you need to:

{
  - "main": "./lib/server/index.js",
  + "main": "./dist/server/index.js",
}

plugin directory must have both src/client and src/server directories

// src/client/index.ts
import { Plugin } from '@nocobase/client';

class MyPlugin extends Plugin {
  async load() {
    // ...
  }
}

export default MyPlugin;
// src/server/index.ts
import { Plugin } from '@nocobase/server';

class MyPlugin extends Plugin {
  async load() {
    // ...
  }
}

export default MyPlugin;

For more information, refer to: sample-hello

Other

Load plugins remotely in the local development environment, you need to set the environment to USE_REMOTE_PLUGIN=true:

yarn cross-env USE_REMOTE_PLUGIN=true nocobase dev