我在我的應用程序中使用Redux。我使用Visual Studio 2015和npm將Redux作爲依賴項下載。使用Redux,Typescript在JS模塊的不同文件夾中輸入。如何判斷模塊在哪裏?
我有以下文件夾結構:
MySolution.sln
├── node_modules
│ ├── redux
│ │ ├── index.d.ts
| | ├── dist
│ │ | ├── redux.js
│ │ | ├── redux.min.js
├── Scripts
│ ├── myscript.ts
│ ├── myscript.js
的終極版的節點結構是使用NPM
NPM安裝終極版
我有一個打字稿下載當談到腳本(myscript.ts),使用Redux,我從它導入createStore
和combineReducers
。
myscript.ts
/// <reference path="../node_modules/redux/index.d.ts" />
import { combineReducers, createStore } from "../node_modules/redux/index";
//... more code
const myApp = combineReducers({
SelectedAnswers: selectedAnswers
});
var store = createStore(myApp);
來編譯以下(myscript.js):
define(["require", "exports", "../node_modules/redux/index"], function (require, exports, index_1) {
"use strict";
var _this = this;
Object.defineProperty(exports, "__esModule", { value: true });
var questionApp = index_1.combineReducers({
SelectedAnswers: selectedAnswers
});
var store = index_1.createStore(questionApp);
});
正如你看到的,我的代碼使用導入腳本,這是由Visual Studio/TypeScript自動生成。
這對於編譯的目的很好,因爲它指向../../../node_modules/redux/index
,它將允許它選取index.d.ts
這是TypeScript打字文件(絕對鍵入)。
所以我的問題出現在應用程序實際運行時,Redux的真實腳本位於下一個文件夾中,因此當我運行我的腳本時,它告訴我模塊無法加載。
如何告訴TypeScript腳本在運行時存在於/redux
?
我想,如果我在require.config
對htat出現了打字稿名稱來確定它產生define()
方法,我可以告訴RequireJS其中腳本,但這絲毫不會有任何效果:
require.config({
baseUrl: "/",
paths: {
"../node_modules/redux/index": "../node_modules/redux/dist/redux"
}
});
感謝您的幫助。
注:如果我將index.d.ts
到同一個文件夾中redux.js
並調用它redux.d.ts
,但這不是它如何出現在故宮下載它工作正常。我不想在每次更新它時將它們移動到同一個文件夾中。