Node.js “如何修复”@类型/节点/索引.d.ts不是模块;?
我已经使用以下命令安装了节点类型定义Node.js “如何修复”@类型/节点/索引.d.ts不是模块;?,node.js,typescript,webpack,webpack-2,typescript-typings,Node.js,Typescript,Webpack,Webpack 2,Typescript Typings,我已经使用以下命令安装了节点类型定义 npm install --save-dev @types/node 之后,当我尝试使用以下语句导入节点类型定义时 import { Process } from '@types/node'; 或 我得到以下错误 [ts] File '<root_path>/node_modules/@types/node/index.d.ts' is not a module. 下面是我的webpackconfig.js的外观 { "compiler
npm install --save-dev @types/node
之后,当我尝试使用以下语句导入节点类型定义时
import { Process } from '@types/node';
或
我得到以下错误
[ts] File '<root_path>/node_modules/@types/node/index.d.ts' is not a module.
下面是我的webpackconfig.js
的外观
{
"compilerOptions": {
"target": "es2015",
"module": "commonjs",
"outDir": "lib",
"typeRoots": [
"node_modules/@typings"
]
},
"exclude": [
"node_modules"
]
}
var path = require('path');
module.exports = {
entry: './ts/handler.ts',
target: 'node',
module: {
loaders: [
{ test: /\.ts(x?)$/, loader: 'ts-loader' },
{ test: /\.json$/, loader: 'json-loader' }
]
},
resolve: {
extensions: ['.ts', '.js', '.tsx', '.jsx']
},
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '.webpack'),
filename: 'handler.js'
},
};
而不是使用:
import { Process } from '@types/node';
您需要更改tsconfig.json
:
{
"compilerOptions": {
...
"typeRoots": ["node_modules/@types"]
}
}
执行此操作后,流程变量将作为全局变量可用
有时需要从Node.js模块导入,例如fs
模块。你可以做:
import * as fs from "fs";
您不需要从“节点”或“@types/node”导入fs
您可以了解更多信息。这是因为在节点键入文件中,任何模块都使用名称node声明 如果你使用
import { Process } from 'node';
TypeScript也将尝试查找节点模块或节点命名空间
在这里,您可以使用
import 'node';
在您的情况下,您希望仅从NodeJS命名空间获取进程:
import 'NodeJS';
之后,你只需要这样称呼它:
class toto implements NodeJS.Process{
}
编辑:
如果您使用TypeScript>=2.0,您不需要在文件中添加导入,只有在您想“优化导入”时才需要添加导入
"typeRoots": ["./src/interfaces/index.d.ts"]
这是给
"typeRoots": ["node_modules/@types"]
以及它的工作原理
之后,我面临猫鼬图书馆的问题
Module 'mongoose' has no exported member 'QueryFindOneAndUpdateOptions'
然后我安装了mongoose版本库
npm install mongoose@5.8.1
它现在正在工作。您不需要从
@types/node
导入。您只需要从“节点”导入。此外,您还需要将tsconfig.json中的typeroot
更改为[“node_modules/@types”]
,仅从节点导入后,embarq会出现相同的错误。更改typeroot
后,仍然会出现相同的错误。我已经进行了更改,现在准备对其进行测试。只是一个简单的例子-所以我不能使用节点类型定义中定义的Process
接口?我认为您可以使用NodeJS.Process
您不需要使用import来输入和更改tsconfig中TypeScript>=2.0的任何内容。对我来说不起作用。我正在使用WebStorm。
npm install mongoose@5.8.1