Задача сборки Grunt для Angular4 Не удается найти модуль '@angular/core/testing'

Я пытаюсь настроить задачу сборки Grunt для моего проекта Angular 4 и вижу ошибки загрузки некоторых модулей, когда пытаюсь запустить задачи. Детали шагов, которые я сделал, -
1. Перешел на https://angular.io/guide/quickstart и использовал шаги, упомянутые в быстром запуске, для создания нового приложения Angular4. Проверено и гарантировано, что оно работает.
2. Обновлен файл package.json, включающий следующее:

"grunt": "~0.4.5",
"grunt-typescript": "^0.8.0",
"grunt-contrib-copy": "~1.0.0",
  1. Добавлен Gruntfile.js со следующим содержимым:

    module.exports = function (grunt) {
    grunt.initConfig ({
    машинопись: {
    база: {
    источник: [
    'src / app //.ts',
    ],
    dest: 'out / static / app.js',
    опции: {
    цель: 'es5',
    исходная карта: ложь,
    moduleResolution: 'узел'
    }
    }
    }
    });
    grunt.loadNpmTasks ('Грунт-машинописный');
    //grunt.loadNpmTasks('grunt-contrib-copy ');
    grunt.registerTask ("по умолчанию", ["машинопись"]);
    grunt.registerTask ("build", ["typcript"]);
    };

  2. Бежать grunt build,

Когда я бегу grunt buildЯ получаю следующее в терминале:

Running "typescript:base" (typescript) task
>> src/app/app.component.spec.ts(1,32): error TS2307: Cannot find module '@angular/core/testing'.
>> src/app/app.component.spec.ts(5,1): error TS2304: Cannot find name 'describe'.
>> src/app/app.component.spec.ts(6,3): error TS2304: Cannot find name 'beforeEach'.
>> src/app/app.component.spec.ts(14,3): error TS2304: Cannot find name 'it'.
>> src/app/app.component.spec.ts(17,5): error TS2304: Cannot find name 'expect'.
>> src/app/app.component.spec.ts(20,3): error TS2304: Cannot find name 'it'.
>> src/app/app.component.spec.ts(23,5): error TS2304: Cannot find name 'expect'.
>> src/app/app.component.spec.ts(26,3): error TS2304: Cannot find name 'it'.
>> src/app/app.component.spec.ts(30,5): error TS2304: Cannot find name 'expect'.
>> src/app/app.component.ts(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided.
>> src/app/app.component.ts(1,27): error TS2307: Cannot find module '@angular/core'.
>> src/app/app.component.ts(8,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
>> src/app/app.module.ts(1,31): error TS2307: Cannot find module '@angular/platform-browser'.
>> src/app/app.module.ts(2,26): error TS2307: Cannot find module '@angular/core'.
>> src/app/app.module.ts(16,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
Warning: Task "typescript:base" failed. Use --force to continue.

Кажется, другой пользователь столкнулся с подобной проблемой, но должен был переключиться на grunt-ts Вместо того, чтобы использовать grunt-typescript, У кого-нибудь есть предложения о том, как заставить это работать?

Хотя у нас есть angular-cli (ng build) для сборки кода на Angular 4, я пытаюсь сделать это потому, что собираюсь использовать это в проекте, который имеет бэкэнд-код Python и выполняет сложные задачи сборки. Я хотел бы объединить все мои задачи по сборке с существующим Gruntfile.js. Я новичок в Angular4 и Typescript. Учусь, как я больше работаю над ними, и изо всех сил пытаюсь решить эту проблему.

1 ответ

Проблема grunt-typcript, которую я разместил здесь, не была решена для меня. Итак, я использовал grunt-ts, как предложено в /questions/39611951/grunt-typescript-ne-mozhet-najti-uglovoe-yadro/39611967#39611967. Тем не менее, он не генерировал файлы, подобные тем, что были созданы с помощью ng build. Итак, я в конечном итоге использовал Webpack, следуя руководству https://angular.io/guide/webpack. Это приводит к результатам, аналогичным ng build.

Другие вопросы по тегам