【记录】webpack

webpack打包错误:Module not found: Error: Can't resolve '.\dist\bundle.js'


【记录一下】 在学习一个vue项目时需要用webpack打包文件,想把项目中src下的main.js用webpack工具打包为dist目录下的一个bundle.js文件
输入命令:
webpack .\src\main.js .\dist\bundle.js

此时就出现错误:
【记录】webpack
原来是因为webpack版本升级后,原先的webpack打包命令不可用了;
我现在使用的版本是:
【记录】webpack
需要使用:webpack ./src/main.js -o ./dist/bundle.js 这个命令进行打包

发现红色报错消失了,然而黄色警告还在:
【记录】webpack

黄色警告是因为webpack4引入了三个模式:开发模式,生产模式,无。
出现黄色警告就是告诉我们没有设置模式,一般有开发模式和生产模式,接下来到package.json.添加上”dev”和”build”这两个信息

“scripts”: { “test”: “echo \”Error: no test specified\” && exit 1”, “dev”:“webpack --mode development”, “bulid”:“webapck --mode production” },

然后全局安装 webpack-cli:

npm i --save-dev webpack-cli -g

安装完成后, 输入命令 npm run dev

【记录】webpack
原因是,输入命令 npm run dev 的时候,会默认打包src文件夹下的index.js文件,打包完成后是main.js文件(放在dist),然而一开始装webpack没有并没有生成index.js,那就在src下手动创建index.js(我实践发现,这里index.js中写不写js都可以;而且这里创建index.js文件只是解决npm run dev 产生的报错问题)此时只要运行webpack ./src/main.js -o ./dist/bundle.js --mode development 就可以对main.js进行打包;
【记录】webpack
打开dist文件夹下的bundle.js可以看到
【记录】webpack
可以看到main.js已经打包了

此时,我把src下的index.js删除,然后另外创建一个a.js试着打包到dist下的b.js文件中,看看是否有报错
src下目录:
【记录】webpack
在a.js中写点东西:
【记录】webpack

dist下目录:
【记录】webpack
打包一下:
【记录】webpack
发现我把原先的index.js删了之后也不会报错
打开b.js:
【记录】webpack说明打包a.js没问题

另外尝试了在根目录下输入命令:webpack main.js -o bundle.js --mode development,报错信息如下:
【记录】webpack

Insufficient number of arguments or no entry found.
Alternatively, run ‘webpack(-cli) --help’ for usage info.
参数数量不足或找不到条目。
或者,运行“webpack(-cli)–help”获取用法信息。

在根目录下找不到main.js文件,把文件路径补全就没事了。

参考文章:https://blog.****.net/lplife/article/details/80875815