@nocobase/cli 0.13.0-alpha.9 → 0.14.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/index.js CHANGED
@@ -15,7 +15,9 @@ const env = {
15
15
  DB_TIMEZONE: '+00:00',
16
16
  DEFAULT_STORAGE_TYPE: 'local',
17
17
  LOCAL_STORAGE_DEST: 'storage/uploads',
18
+ PLUGIN_STORAGE_PATH: resolve(process.cwd(), 'storage/plugins'),
18
19
  MFSU_AD: 'none',
20
+ NODE_MODULES_PATH: resolve(process.cwd(), 'node_modules'),
19
21
  PM2_HOME: resolve(process.cwd(), './storage/.pm2'),
20
22
  PLUGIN_PACKAGE_PREFIX: '@nocobase/plugin-,@nocobase/plugin-sample-,@nocobase/preset-',
21
23
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/cli",
3
- "version": "0.13.0-alpha.9",
3
+ "version": "0.14.0-alpha.2",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./src/index.js",
@@ -8,14 +8,14 @@
8
8
  "nocobase": "./bin/index.js"
9
9
  },
10
10
  "dependencies": {
11
- "@nocobase/app": "0.13.0-alpha.9",
11
+ "@nocobase/app": "0.14.0-alpha.2",
12
12
  "@types/fs-extra": "^11.0.1",
13
13
  "@umijs/utils": "3.5.20",
14
14
  "chalk": "^4.1.1",
15
15
  "commander": "^9.2.0",
16
16
  "dotenv": "^10.0.0",
17
17
  "execa": "^5.1.1",
18
- "fast-glob": "^3.2.12",
18
+ "fast-glob": "^3.3.1",
19
19
  "fs-extra": "^11.1.1",
20
20
  "pm2": "^5.2.0",
21
21
  "portfinder": "^1.0.28",
@@ -23,12 +23,12 @@
23
23
  "tsx": "^3.12.7"
24
24
  },
25
25
  "devDependencies": {
26
- "@nocobase/devtools": "0.13.0-alpha.9"
26
+ "@nocobase/devtools": "0.14.0-alpha.2"
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",
30
30
  "url": "git+https://github.com/nocobase/nocobase.git",
31
31
  "directory": "packages/core/cli"
32
32
  },
33
- "gitHead": "ee5825377d8bec05f968a8365a0cdcd49878ada6"
33
+ "gitHead": "ea841d4a1e8c37aa77b4fbae6a6a4937e2aa3c0a"
34
34
  }
@@ -18,6 +18,7 @@ module.exports = (cli) => {
18
18
  .allowUnknownOption()
19
19
  .action(async (opts) => {
20
20
  promptForTs();
21
+ process.env.IS_DEV_CMD = true;
21
22
 
22
23
  if (process.argv.includes('-h') || process.argv.includes('--help')) {
23
24
  run('ts-node', [
@@ -59,6 +60,7 @@ module.exports = (cli) => {
59
60
 
60
61
  const argv = [
61
62
  'watch',
63
+ '--ignore=./storage/plugins/**',
62
64
  '--tsconfig',
63
65
  './tsconfig.server.json',
64
66
  '-r',
@@ -9,6 +9,7 @@ module.exports = (cli) => {
9
9
  generateAppDir();
10
10
  require('./global')(cli);
11
11
  require('./build')(cli);
12
+ require('./tar')(cli);
12
13
  require('./dev')(cli);
13
14
  require('./start')(cli);
14
15
  require('./test')(cli);
@@ -3,6 +3,7 @@ const { run, isDev, isPackageValid } = require('../util');
3
3
  const { resolve } = require('path');
4
4
  const { existsSync } = require('fs');
5
5
  const { readFile, writeFile } = require('fs').promises;
6
+ const { createStoragePluginsSymlink } = require('@nocobase/utils/plugin-symlink');
6
7
 
7
8
  /**
8
9
  * @param {Command} cli
@@ -13,6 +14,7 @@ module.exports = (cli) => {
13
14
  .command('postinstall')
14
15
  .allowUnknownOption()
15
16
  .action(async () => {
17
+ await createStoragePluginsSymlink();
16
18
  if (!isDev()) {
17
19
  return;
18
20
  }
@@ -0,0 +1,27 @@
1
+ const { resolve } = require('path');
2
+ const { Command } = require('commander');
3
+ const { run, nodeCheck, isPackageValid } = require('../util');
4
+
5
+ /**
6
+ *
7
+ * @param {Command} cli
8
+ */
9
+ module.exports = (cli) => {
10
+ cli
11
+ .command('tar')
12
+ .allowUnknownOption()
13
+ .argument('[packages...]')
14
+ .option('-v, --version', 'print version')
15
+ .option('-c, --compile', 'compile the @nocobase/build package')
16
+ .option('-w, --watch', 'watch compile the @nocobase/build package')
17
+ .action(async (pkgs, options) => {
18
+ nodeCheck();
19
+ if (options.compile || options.watch || isPackageValid('@nocobase/build/src/index.ts')) {
20
+ await run('yarn', ['build', options.watch ? '--watch' : ''], {
21
+ cwd: resolve(process.cwd(), 'packages/core/build'),
22
+ });
23
+ if (options.watch) return;
24
+ }
25
+ await run('nocobase-build', [...pkgs, '--only-tar', options.version ? '--version' : '']);
26
+ });
27
+ };
@@ -2,7 +2,9 @@ const chalk = require('chalk');
2
2
  const { existsSync } = require('fs');
3
3
  const { join, resolve } = require('path');
4
4
  const { Generator } = require('@umijs/utils');
5
- const { readFile } = require('fs').promises;
5
+ const { readFile, writeFile } = require('fs').promises;
6
+
7
+ const execa = require('execa');
6
8
 
7
9
  function camelize(str) {
8
10
  return str.trim().replace(/[-_\s]+(.)?/g, (match, c) => c.toUpperCase());
@@ -33,18 +35,27 @@ class PluginGenerator extends Generator {
33
35
 
34
36
  async getContext() {
35
37
  const { name } = this.context;
36
- const packageName = await getProjectName();
37
38
  const nocobaseVersion = require('@nocobase/server/package.json').version;
38
39
  const packageVersion = await getProjectVersion();
39
40
  return {
40
41
  ...this.context,
41
- packageName: `@${packageName}/plugin-${name}`,
42
+ packageName: name,
42
43
  packageVersion,
43
44
  nocobaseVersion,
44
- pascalCaseName: capitalize(camelize(name)),
45
+ pascalCaseName: capitalize(camelize(name.split('/').pop())),
45
46
  };
46
47
  }
47
48
 
49
+ async addTsConfigPaths() {
50
+ const { name } = this.context;
51
+ if (name.startsWith('@') && name.split('/')[0] !== '@nocobase') {
52
+ const target = resolve(process.cwd(), 'tsconfig.json');
53
+ const content = require(target);
54
+ content.compilerOptions.paths[name] = [`packages/plugins/${name}/src`];
55
+ await writeFile(target, JSON.stringify(content, null, 2), 'utf-8');
56
+ }
57
+ }
58
+
48
59
  async writing() {
49
60
  const { name } = this.context;
50
61
  const target = resolve(process.cwd(), 'packages/plugins/', name);
@@ -59,6 +70,9 @@ class PluginGenerator extends Generator {
59
70
  path: join(__dirname, '../templates/plugin'),
60
71
  });
61
72
  console.log('');
73
+ await this.addTsConfigPaths();
74
+ execa.sync('yarn', ['install'], { shell: true, stdio: 'inherit' });
75
+ // execa.sync('yarn', ['build', `plugins/${name}`], { shell: true, stdio: 'inherit' });
62
76
  console.log(`The plugin folder is in ${chalk.green(`packages/plugins/${name}`)}`);
63
77
  }
64
78
  }
@@ -0,0 +1 @@
1
+ # {{{packageName}}}
@@ -1,6 +1,6 @@
1
1
  import { Plugin } from '@nocobase/client';
2
2
 
3
- export class {{{pascalCaseName}}}Plugin extends Plugin {
3
+ export class {{{pascalCaseName}}}Client extends Plugin {
4
4
  async afterAdd() {
5
5
  // await this.app.pm.add()
6
6
  }
@@ -18,4 +18,4 @@ export class {{{pascalCaseName}}}Plugin extends Plugin {
18
18
  }
19
19
  }
20
20
 
21
- export default {{{pascalCaseName}}}Plugin;
21
+ export default {{{pascalCaseName}}}Client;
@@ -1,6 +1,6 @@
1
1
  import { InstallOptions, Plugin } from '@nocobase/server';
2
2
 
3
- export class {{{pascalCaseName}}}Plugin extends Plugin {
3
+ export class {{{pascalCaseName}}}Server extends Plugin {
4
4
  afterAdd() {}
5
5
 
6
6
  beforeLoad() {}
@@ -16,4 +16,4 @@ export class {{{pascalCaseName}}}Plugin extends Plugin {
16
16
  async remove() {}
17
17
  }
18
18
 
19
- export default {{{pascalCaseName}}}Plugin;
19
+ export default {{{pascalCaseName}}}Server;