Error: Cannot find module ‘webpack’

2019-01-19 00:29   Tags:

好久没用webpack压缩js文件了,今天用到了一下,但是…


E:\Code\web\songshuila\wp-content\themes\water2\scripts>webpack js.js js.min.js -p

C:\Users\admin\node_modules\webpack-cli\bin\cli.js:244
                                throw err;
                                ^

Error: Cannot find module 'webpack'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
    at Function.Module._load (internal/modules/cjs/loader.js:506:25)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (C:\Users\admin\node_modules\v8-compile-cache\v8-compile-cache.js:159:20)
    at Object.<anonymous> (C:\Users\admin\node_modules\webpack-cli\bin\convert-argv.js:7:24)
    at Module._compile (C:\Users\admin\node_modules\v8-compile-cache\v8-compile-cache.js:178:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at yargs.parse (C:\Users\admin\node_modules\webpack-cli\bin\cli.js:241:14)
    at Object.parse (C:\Users\admin\node_modules\yargs\yargs.js:567:18)
    at C:\Users\admin\node_modules\webpack-cli\bin\cli.js:219:8
    at Object.<anonymous> (C:\Users\admin\node_modules\webpack-cli\bin\cli.js:538:3)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js:155:2)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)

一开始以为,时间长不用,版本不支持啥的,于是重新安装了一遍

npm install webpack -g

但是还是报错,于是查了一下

确实是版本的问题,

因为在webpack 3中,webpack本身和它的CLI以前都是在同一个包中,但在第4版中,他们已经将两者分开来更好地管理它们。

执行cli安装

npm install webpack-cli -g 

后面再执行压缩,

webpack js.js js.min.js -p

但是又遇到了了一个问题

ERROR in multi ./js.js js.min.js
Module not found: Error: Can't resolve 'js.min.js' in 'E:\Code\web\songshuila\wp-content\themes\water2\scripts'
@ multi ./js.js js.min.js main[1]

在这里看到一句https://stackoverflow.com/questions/49772863/webpack-4-error-in-entry-module-not-found-error-cant-resolve-src?rq=1

output,后来测试发现

原来,需要区分开,新版本,他默认 是多个文件压缩

webpack js.js js.min.js -p这样他会视为两个文件了,js.min.js没有找到所以报错

需要这样,通过output指定输出

webpack js.js --output js.min.js -p

或者不指定,按照默认的形式

webpack js.js -p

这样他会生成一个dist文件夹里面会生成个mian.js文件

然后我执行了一次webpack js.js js.min.js -p,然后没有报错了,因为两个文件都存在

一开始翻译的时候,不能理解

经过测试之后,最后又翻译了一下,了解了

发表评论

电子邮件地址不会被公开。 必填项已用*标注