我在我的应用程序中使用Redux。我正在使用Visual Studio 2015和npm来下载Redux作为依赖项。
我有以下文件夹结构:
MySolution.sln
├── node_modules
│ ├── redux
│ │ ├── index.d.ts
| | ├── dist
│ │ | ├── redux.js
│ │ | ├── redux.min.js
├── Scripts
│ ├── myscript.ts
│ ├── myscript.js
Redux的节点结构是使用npm
下载时的结构npm install redux
我有一个TypeScript脚本(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的真实脚本位于下一个文件夹/redux.js
中,所以当我运行我的脚本时它告诉我该模块无法加载。
如何告诉TypeScript脚本在运行时位于/redux
?
我认为,如果我在require.config
中针对名称htat在TypeScript生成的define()
方法中指定它,那我可以告诉RequireJS脚本在哪里,但是这没有任何效果:
require.config({
baseUrl: "/",
paths: {
"../node_modules/redux/index": "../node_modules/redux/dist/redux"
}
});
感谢您的帮助。
注意:如果我将index.d.ts
移动到与redux.js
相同的文件夹并将其称为redux.d.ts
,它可以正常工作,但这不是它在npm下载中的显示方式。我不希望每次更新它时都将它们移动到同一个文件夹中。