У меня есть пример angular2 приложения с машинописи, но не все node_modules в моем проекте (like this). Необходимые файлы встроены в head
из моих index.html
(as described in example 1 here):Машинопись Компилятор TS2307 Ошибка: Не удается найти модуль «angular2/ядро» при загрузке из CDN без НПМ
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.35.0/es6-shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.16/system-polyfills.js"></script>
<script src="https://npmcdn.com/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.13/angular2-polyfills.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.13/Rx.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.13/angular2.dev.js"></script>
Поскольку я хочу предварительно собрать мои Машинопись-файлы, я установил node.js
и tsc
. Мой редактор (PhpStorm 2016,1) автоматически компилирует файлы assets/js
, как это определено в tsconfig.json
:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"declaration": true,
"noImplicitAny": false,
"preserveConstEnums": true,
"removeComments": true,
"outDir": "../assets/js",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"emitBOM": true,
"moduleResolution": "node"
}
}
приложение загружается (as described here):
System.config({
packages: {
'assets/js': {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('assets/js/main').then(null, console.error.bind(console));
На компиляции, я всегда получаю (вид классический) ошибка
error TS2307: Cannot find module 'angular2/core'
PhpStorm говорит мне, что он не может разрешить импорт:
даже тогда, когда все внешние библиотеки загружены:
Но после компиляции (даже с указанными выше ошибками) приложения работает отлично в браузере.
Возможно, не указано определение машинописного текста (TSD) (link here), но tsd устарел. Я читал о typings install angular --ambient
, но я не уверен, действительно ли это необходимо (и он выдает кучу других ошибок like this).
Так что мой вопрос:
Является ли это просто побочный эффект моей установки (без node_modules), который я могу игнорировать, или я должен установить другие вещи?
Моя среда:
- узел 5.4.1
- НПМ 3.3.12
- TSC 1.8.9
- Mac OS X 10.11.4
- PhpStorm 2016,1
Я немного потерян. Любые подсказки будут высоко оценены.
Я думаю, что модуль должен быть изменен с модуля '': "system", 'to' "module": "commonjs", ' –