- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我在设置我的 Node.js TypeScript 项目时遇到了一个有趣的情况。我希望能够使用非相对 require
引用我的本地模块引用。 TypeScript 和 Node.js 查找模块的方式是查找 node_modules
目录中的当前目录,然后是每个父目录,直到找到包含引用的目录。因此,假设我有一个要在以下目录结构中引用的模块:
/node_modules <-- Main NPM modules dir
/...
/package.json
/src
/node_modules <-- My local modules dir
/modules
/myModule.ts
/scripts
/init.ts
init.ts
我引用
myModule
像这样:
import myModule from "modules/myModule";
node_modules
目录转移到输出
dist
目录以及我所有的其他
.ts
文件目录,以便
dist
目录如下所示:
/node_modules <-- Main NPM modules dir
/...
/package.json
/dist
/node_modules <-- My local modules dir
/modules
/myModule.js
/scripts
/init.js
dist/node_modules/modules/myModule.js
找到它。 .所以在这种情况下,我确实希望 TypeScript 包含
node_modules
输入文件中的目录。不过,我似乎遗漏了一些基本的东西,因为 TypeScript 实际上默认忽略了这个目录。
node_modules
的合法方案吗?目录,如果是这样,当我刚刚运行
tsc
时,如何让 TypeScript 将其包含在转译中(因此它将使用我的
tsconfig.json
文件)?
node_modules
将目录显式放入
include
.tsconfig.json
中的指令像这样:
"include": [
"./src/node_modules/**/*",
"./src/**/*"
]
node_modules
,它确实正确地找到了我的本地模块。
最佳答案
包含 node_modules
是不正确的用于转译。因为node_modules
包含 javascript 并且在 ts 库的情况下不需要第二次编译,它们应该在 .d.ts
中有声明.
如果你有自定义类型,或者你想给一些没有自定义类型的库添加类型,你需要使用自己的declarations或 @types/*
包。
在您的 tsconfig.json
您可以定义类型根(从哪里加载声明)。
{
"compilerOptions": {
"typeRoots": ["./declarations", "./node_modules/@types"],
"types": ["node"],
}
}
npm i --save-dev @types/node@^12
例如获取 nodejs v12 的声明。
declarations
中定义您自己的声明对于
express
例如:
./declarations/express/index.d.ts
import * as express from 'express';
declare module 'express' {
export interface Request {
user?: {
id: string;
name: string;
}
}
}
关于javascript - 我可以让 TypeScript 包含 node_modules 以进行编译吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517459/
我已经创建了自己的 npm 包,我们称它为 XYZ,它在 package.json 文件中具有 @material-ui 依赖项。 当我在项目 A 中安装它时,我在 XYZ 文件夹中嵌套了 node_
我遇到过这样一种情况:node_modules/@types 中的类型定义正在安装它自己的@types 依赖项,而这些“嵌套”@types 与我的顶级@types 冲突。 @types |-angul
当我 npm start 时出现此错误我的 react 项目。谁能解决这个问题? ./src/index.scss (./node_modules/css-loader/dist/cjs.js??re
我正在尝试使用 CopyWebpackPlugin 将一些文件从我的 node_modules 文件夹复制到我的构建文件夹中。 new CopyWebpackPlugin([ { from: 'n
我正在尝试使用 CopyWebpackPlugin 将一些文件从我的 node_modules 文件夹复制到我的构建文件夹中。 new CopyWebpackPlugin([ { from: 'n
我正在将一个项目从使用 Grunt 迁移到使用 Webpack。这个项目使用 jQuery。我注意到捆绑代码工作正常,即使我还没有将 jQuery 添加到 package.json,这看起来很奇怪。
当我在本地安装时,将我的模块两个父项放在我的项目文件夹之上。为什么会这样? 谢谢! 最佳答案 手动将 node_modules 文件夹扔进去就可以了 关于javascript - npm 在../..
我遇到了这个问题..有人有想法..那是什么意思.?想在我的本地机器上启动我的应用程序。但医生的工作方式。我在这里用模块或注释和 bcrypt 卡住?有人有解决这个问题的想法吗?为什么会出现这个问题。?
我最近发现了 ack 和 ack -ir --ignore-dir={node_modules,dist,.git} 对大多数事情都很好,但是这个 ---node_modules/ ---------
我在部署 netlify 时遇到问题,有些冲突我不明白。我尝试清除缓存、重建基础、重建包、在 netlify 上重新部署、重新安装 mini-CSS-extract-plugin。 调试 Netlif
我是 NodeJS 的新手,想使用 Sequelize。 我在新的 CentOS7 虚拟机上安装了 PostgreSQL 和 Node。 node -v v10.14.1 npm -v v6.5.0
我安装了 npm,当我第一次执行 sudo npm install some-package -g 时,它按照我的预期将该包安装到/usr/lib/node_modules,但随后它还在~/.npm。
我刚刚创建了一个带有“验证器”依赖项的 Node 模块。但是当我从 npm 安装它时,它不会在它自己的 node_module 目录中安装“验证器”模块。我不明白为什么,但这是我第一次创建自己的 No
我正在尝试使用 npm install packagename 将软件包安装到项目中.然后安装继续安装到 /home/myusername/node_modules/packagename/node_
我正在尝试构建我的 angular 项目并出现以下错误: Build Command: node --max_old_space_size=8192 node_modules/@angular/cli
我正在通过自制软件安装星舰,但出现此错误: Permission denied @ apply2files - /usr/local/lib/node_modules/expo-cli/node_mo
我试图在 Windows 10 中运行一个 Angular 项目。这与我在 Ubuntu 中执行的项目相同。当我克隆存储库并安装所有 Node 包时,我遇到了这个错误。 ERROR in./node_
我跑npm init npm i -D jest像这样 tutorial 运行推荐 nmp test 后出现此错误 这不是生物.js 或生物.test.js 的错误,因为没有发生此文件错误。我怎样才能
我刚刚将 npm 更新到 5.4.0。 现在,每当我想安装 npm 包时,我都会收到以下错误: D:\Sources\DownloadCms\Md.Download\Web.Angular>npm i
我正在尝试使用 npm 命令安装 appium。 每次尝试我都会遇到错误。 在最后一次尝试中,我引用了以下链接: node-gyp build error windows x64 为了在我的 Wind
我是一名优秀的程序员,十分优秀!