找不到模块“路径”
Posted
技术标签:
【中文标题】找不到模块“路径”【英文标题】:Cannot find module 'path' 【发布时间】:2018-08-24 17:28:55 【问题描述】:我正在尝试学习 Typescript,并认为我也应该在 .ts
中进行 webpack 配置。这是我的webpack.config.ts
:
import * as webpack from 'webpack';
import * as path from 'path';
const config: webpack.Configuration =
entry: path.resolve('src/main.ts'),
module:
rules: [
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
]
,
resolve:
extensions: ['.tsx', '.ts', '.js']
,
output:
filename: 'index.js',
path: path.resolve( 'dist')
export default config;
还有我的package.json
:
"main": "index.js",
"scripts":
"prebuild": "rimraf dist",
"build": "webpack --config devtools/webpack.config.ts --display-error-details",
"post-build": "webpack-dev-server --config devtools/webpack.config.ts --mode development"
,
"author": "",
"license": "ISC",
"devDependencies":
"ts-loader": "^4.0.1",
"ts-node": "^5.0.1",
"typescript": "^2.7.2",
"webpack": "^4.1.1",
"webpack-cli": "^2.0.12",
"webpack-dev-server": "^3.1.1"
我在运行 npm run build 时遇到的错误是:
TS2307: Cannot find module 'path'
我也尝试过要求路径,但后来我得到一个不同的错误,说它找不到模块要求。
似乎是什么问题?
【问题讨论】:
你跑npm install --save path
了吗?
@mhatch path
是 node 中的全局模块,默认可用
【参考方案1】:
这应该会有所帮助
npm i @types/node -D
Typescript 需要为 any 模块输入类型,除非该模块不是用 typescript 编写的。
【讨论】:
这工作谢谢!也许作者可以接受这个作为答案 不要忘记将"types": ["node"]
添加到 tsconfig.json。 (***.com/a/56799541/4808079)
@SephReed 不,这不是必需的。 @types
文件夹中的类型会自动加载。除非有我不知道的新规则
我正在使用 monorepo,因此与通常的工作流程有很多不同。添加这个解决了一个问题。
这个依赖解决了我的问题。谢谢!【参考方案2】:
首先,webpack 配置文件不需要 .ts
扩展名。它只是构建捆绑包的内部目的。使用普通的 .js
文件。
Webpack 不是由浏览器运行的,它由 Node Js
运行,它运行 webpack 模块并根据配置进行捆绑。
现在Node Js
了解它自己的模块系统是require
所以它会像下面这样: require 下面是 Node Js 模块导入语法。
const webpack = require('webpack');
const path = require('path');
【讨论】:
在 typescript 中编写 webpack 配置意味着您的配置经过类型检查并帮助您避免错误。 OP 专门询问如何在打字稿中进行这项工作【参考方案3】:尝试使用require
语法而不是import
并将webpack.config.ts
更改为以下代码
webpack.config.ts
const webpack = require('webpack');
const path = require('path');
const config: webpack.Configuration =
entry: path.resolve('src/main.ts'),
module:
rules: [
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
]
,
resolve:
extensions: ['.tsx', '.ts', '.js']
,
output:
filename: 'index.js',
path: path.resolve( 'dist')
module.exports = config;
然后运行npm run build
【讨论】:
以上是关于找不到模块“路径”的主要内容,如果未能解决你的问题,请参考以下文章