找不到模塊「angular2 /芯」我有打字稿,的angular2應用的一個例子,但沒有所有的node_modules在我的項目(like this)。必要的文件嵌入我的index.html
(as described in example 1 here)的head
:打字稿編譯器錯誤TS2307:從CDN加載時沒有NPM
<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
- NPM 3.3.12
- TSC 1.8.9
- 的Mac OS X 10.11.4
- PHPStorm 2016.1
我有點失落。任何提示將不勝感激。
我覺得模塊需要從''module「:」system「,''改爲'」module「:」commonjs「,' –