У меня есть крупномасштабный проект с несколькими подпроектами, которые разделяют некоторые общие задачи. Я планирую разработать эти gulp задачи как отдельную библиотеку npm.
То, что я до сих пор делал, это создание проекта TypeScript, который имеет следующую структуру,
GulpLibrary
src
tasks
clean.ts
build.ts
publish.ts
utils
task-helpers.ts
constants.ts
gulpfile.ts
index.ts
gulpfile.js
tsconfig.json
package.json
src\tasks\**
содержит все глотковые задания.
src\utils\**
содержит все распространенные логики.
src\gulpfile.ts
выглядит следующим образом,
import './tasks/clean';
import './tasks/build';
import './tasks/publish';
\gulpfile.js
выглядит следующим образом,
'use strict';
const path = require('path');
// Register TS compilation.
require('ts-node').register({
project: path.join(__dirname, '/tsconfig.json')
});
require('./src/gulpfile');
\tsconfig.json
выглядит следующим образом,
{
"$schema": "http://json.schemastore.org/tsconfig",
"compilerOptions": {
"target": "es5",
"lib": ["es6", "es2015"],
"moduleResolution": "node",
"module": "commonjs",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"declaration": true,
"noEmitOnError": true,
"noImplicitAny": true,
"sourceMap": false,
"inlineSources": true,
"stripInternal": true,
"rootDir": "./src",
"outDir": "./dist/mytools",
"strict": true
},
"types": [
"node"
],
"typeRoots": [
"node_modules/@types"
],
"include": [
"**/*.ts"
],
"exclude": [
"node_modules",
"./dist"
]
}
Когда я запускаю gulp --tasks
внутри GulpLibrary
, все задачи отображаются в списке, как и ожидалось.
Но когда я запускаю gulp --tasks
в моем другом проекте, список задач не отображается. Ниже приведены шаги, которые я выполнил, чтобы установить вышеуказанные задачи в мой другой проект.
- Компилировать файлы машинописного текста, используя tsconfig, показанный выше (использовал ту же задачу gulp в этой библиотеке)
- В моем другом проекте запускается
npm install path\to\dist\mytools
, и пакет устанавливается в node_modules.
- В другом проекте я создал
gulpfile.js
в корне проекта. Содержание файла выглядит следующим образом:
'use strict';
require('@tc-devkit/tools/gulpfile');
Почему список задач не отображается должным образом?
ДОПОЛНИТЕЛЬНОЕ ПРИМЕЧАНИЕ:
Если я запускаю, gulp --tasks -f=node_modules\mytools\gulpfile.js
задачи отображаются правильно.