首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到模块'path‘

找不到模块'path‘
EN

Stack Overflow用户
提问于 2018-03-16 03:00:07
回答 3查看 24.4K关注 0票数 20

我正在尝试学习Typescript,我想我也应该在.ts中设置我的webpack配置。这是我的webpack.config.ts

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
  "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时,我得到的错误是:

代码语言:javascript
运行
复制
TS2307: Cannot find module 'path'

我也尝试过请求路径,但是我得到一个不同的错误,说它找不到需要的模块。

问题出在哪里?

EN

回答 3

Stack Overflow用户

发布于 2018-11-15 12:13:41

这应该会有帮助

代码语言:javascript
运行
复制
npm i @types/node -D

typescript需要为任何模块键入类型,除非该模块不是用Typescript编写的。

票数 53
EN

Stack Overflow用户

发布于 2018-03-16 17:26:44

尝试使用require语法而不是import &将webpack.config.ts更改为以下代码

webpack.config.ts

代码语言:javascript
运行
复制
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

票数 -4
EN

Stack Overflow用户

发布于 2018-11-15 12:10:15

首先,不需要对webpack配置文件进行.ts扩展。它只是构建捆绑包的内部目的。使用普通的.js文件。

Webpack不是由浏览器运行的,它是由Node Js运行的,它运行的是webpack模块,并根据配置进行捆绑。

现在Node Js明白了它自己的模块系统是require

下面是Node模块导入语法require

代码语言:javascript
运行
复制
const webpack = require('webpack');
const path = require('path');
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49307319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档