fix: yarn start error in windows system (#1177)

* feat: add .env.test.example

* fix: yarn start error in windows system
This commit is contained in:
chenos 2022-12-02 14:23:07 +08:00 committed by GitHub
parent 591f0f7b69
commit c64e32945e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 92 additions and 16 deletions

69
.env.test.example Normal file
View File

@ -0,0 +1,69 @@
################# NOCOBASE APPLICATION #################
APP_ENV=development
APP_PORT=13000
APP_KEY=test-key
API_BASE_PATH=/api/
API_BASE_URL=
PROXY_TARGET_URL=
################# DATABASE #################
DB_DIALECT=sqlite
DB_STORAGE=storage/db/nocobase-test.sqlite
# DB_HOST=localhost
# DB_PORT=5432
# DB_DATABASE=nocobase-test
# DB_USER=nocobase
# DB_PASSWORD=nocobase
# DB_LOGGING=on
################# CACHE #################
# default is memory cache, when develop mode,code's change will be clear memory cache, so can use 'cache-manager-fs-hash'
# CACHE_CONFIG={"storePackage":"cache-manager-fs-hash","ttl":86400,"max":1000}
################# STORAGE (Initialization only) #################
INIT_ROOT_EMAIL=admin@nocobase.com
INIT_ROOT_PASSWORD=admin123
INIT_ROOT_NICKNAME=Super Admin
# local or ali-oss
DEFAULT_STORAGE_TYPE=local
# LOCAL STORAGE
LOCAL_STORAGE_BASE_URL=
LOCAL_STORAGE_DEST=storage/uploads
# ALI OSS STORAGE
ALI_OSS_STORAGE_BASE_URL=
ALI_OSS_REGION=oss-cn-beijing
ALI_OSS_ACCESS_KEY_ID=
ALI_OSS_ACCESS_KEY_SECRET=
ALI_OSS_BUCKET=
# Tencent COS STORAGE
TX_COS_STORAGE_BASE_URL=
TX_COS_REGION=ap-guangzhou
TX_COS_SECRET_ID=
TX_COS_SECRET_KEY=
TX_COS_BUCKET=
# AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_S3_REGION=
AWS_S3_BUCKET=
AWS_S3_STORAGE_BASE_URL=
# ALI SMS VERIFY CODE CONFIG
INIT_ALI_SMS_ACCESS_KEY=
INIT_ALI_SMS_ACCESS_KEY_SECRET=
INIT_ALI_SMS_ENDPOINT=
INIT_ALI_SMS_VERIFY_CODE_TEMPLATE=
INIT_ALI_SMS_VERIFY_CODE_SIGN=
# use any string name (no space)
DEFAULT_SMS_VERIFY_CODE_PROVIDER=

View File

@ -2,6 +2,10 @@
测试基于 [Jest](https://jestjs.io/) 测试框架。为了方便的编写测试,提供了 `mockDatabase()``mockServer()` 用于数据库和服务端应用的测试。 测试基于 [Jest](https://jestjs.io/) 测试框架。为了方便的编写测试,提供了 `mockDatabase()``mockServer()` 用于数据库和服务端应用的测试。
<Alert>
避免破坏生产环境数据,建议使用 `.env.test` 文件来配置测试环境的环境变量,并使用独立的测试数据库进行测试。
</Alert>
## `mockDatabase()` ## `mockDatabase()`
默认提供一种完全隔离的 db 测试环境 默认提供一种完全隔离的 db 测试环境

View File

@ -16,6 +16,7 @@ const env = {
DEFAULT_STORAGE_TYPE: 'local', DEFAULT_STORAGE_TYPE: 'local',
LOCAL_STORAGE_DEST: 'storage/uploads', LOCAL_STORAGE_DEST: 'storage/uploads',
MFSU_AD: 'none', MFSU_AD: 'none',
PM2_HOME: resolve(process.cwd(), './storage/.pm2'),
}; };
if (!process.env.APP_ENV_PATH && process.argv[2] && process.argv[2] === 'test') { if (!process.env.APP_ENV_PATH && process.argv[2] && process.argv[2] === 'test') {

View File

@ -21,6 +21,10 @@ module.exports = (cli) => {
const content = await readFile(resolve(cwd, '.env.example'), 'utf-8'); const content = await readFile(resolve(cwd, '.env.example'), 'utf-8');
await writeFile(resolve(cwd, '.env'), content, 'utf-8'); await writeFile(resolve(cwd, '.env'), content, 'utf-8');
} }
if (!existsSync(resolve(cwd, '.env.test')) && existsSync(resolve(cwd, '.env.test.example'))) {
const content = await readFile(resolve(cwd, '.env.test.example'), 'utf-8');
await writeFile(resolve(cwd, '.env.test'), content, 'utf-8');
}
if (!isPackageValid('umi')) { if (!isPackageValid('umi')) {
return; return;
} }

View File

@ -20,12 +20,6 @@ module.exports = (cli) => {
if (opts.port) { if (opts.port) {
process.env.APP_PORT = opts.port; process.env.APP_PORT = opts.port;
} }
if (process.platform === 'win32') {
console.log(
chalk.yellow(`It is not supported on win platform, please use \`${chalk.green('yarn dev')}\` instead`),
);
return;
}
if (process.argv.includes('-h') || process.argv.includes('--help')) { if (process.argv.includes('-h') || process.argv.includes('--help')) {
promptForTs(); promptForTs();
run('ts-node', [ run('ts-node', [

View File

@ -101,7 +101,8 @@ export class ClientPlugin extends Plugin {
root = resolve(process.cwd(), root); root = resolve(process.cwd(), root);
} }
if (process.env.APP_ENV !== 'production' && root) { if (process.env.APP_ENV !== 'production' && root) {
this.app.middleware.nodes.unshift(async (ctx, next) => { this.app.use(
async (ctx, next) => {
if (ctx.path.startsWith(this.app.resourcer.options.prefix)) { if (ctx.path.startsWith(this.app.resourcer.options.prefix)) {
return next(); return next();
} }
@ -110,7 +111,9 @@ export class ClientPlugin extends Plugin {
if (ctx.status == 404) { if (ctx.status == 404) {
return send(ctx, 'index.html', { root }); return send(ctx, 'index.html', { root });
} }
}); },
{ tag: 'clientStatic', before: 'cors' },
);
} }
} }
} }

1
storage/.gitignore vendored
View File

@ -0,0 +1 @@
.pm2