我正在尝试学习Typescript,我想我也应该用.ts
来做我的webpack配置。
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'
我也尝试过required path,但是我得到了一个不同的错误,说它找不到模块require。
有什么问题吗?
5条答案
按热度按时间qhhrdooz1#
这应该会有帮助
Typescript需要为 * 任何 * 模块键入类型,除非该模块不是用typescript编写的。
qncylg1j2#
使用
在评论中提到的
tsconfig.json
中,为我解决了这个问题。q8l4jmvw3#
我不得不做这一切
1.[VS代码][终端]升级 typescript :
npm i typescript/@latest -g
1.[VS代码][终端]安装节点类型:
npm i @types/node --save-dev
1.[VS代码][tsconfig.json]添加类型:
"compilerOptions": {types:["node"]}
1.[VS代码][资源管理器]删除package-lock.json和节点模块
1.[VS代码][终端]安装:
npm install
1.[VS代码]重新启动VS代码
1.[VS代码][终端]测试:
tsc
zdwk9cvp4#
尝试使用
require
语法而不是import
,并将webpack.config.ts
更改为以下代码网络包配置ts
然后运行
npm run build
2lpgd9685#
首先,webpack配置文件不需要
.ts
扩展名。它只是构建捆绑包的内部用途。使用普通的.js
文件。Webpack不是由浏览器运行的,而是由
Node Js
运行的,Node Js
运行Webpack模块并根据配置进行捆绑。现在
Node Js
明白了自己的模块系统是require
所以它会像下面这样:下面的require为Node Js模块导入语法。