webpack 遇到问题总结

webpack src/main.js dist/bundle.js

internal/modules/cjs/loader.js:582

 报错的原因,就是什么环境配置的问题。

首先电脑上先安装了node.js,然后又安装了nvm,安装nvm没有卸载,并且安装路径有问题,并不是中文的问题。而是文件夹的空格。

安装nvm的路径是E:\Program Files (x86)\nvm。出现了非常多莫名其妙的问题,虽然解决了,但是必须将需要编译的文件放入node_modules下,让人感到不爽。

选择重新装node,nrm,nvm,webpack。

webpack : 无法加载文件 E:\Node\nvm\node_global\webpack.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

把 后缀带有.ps1的文件全部删除即可。

PS E:\MyHTML\webpage-study> webpack ./src/main.js ./dist/budle.js
assets by status 88.3 KiB [cached] 1 asset
runtime modules 663 bytes 3 modules
cacheable modules 281 KiB
  ./src/main.js 213 bytes [built] [code generated]
  ./node_modules/jquery/dist/jquery.js 281 KiB [built] [code generated]

WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value.
Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/

ERROR in main
Module not found: Error: Can't resolve './dist/budle.js' in 'E:\MyHTML\webpage-study'
resolve './dist/budle.js' in 'E:\MyHTML\webpage-study'
  using description file: E:\MyHTML\webpage-study\package.json (relative path: .)
    Field 'browser' doesn't contain a valid alias configuration
    using description file: E:\MyHTML\webpage-study\package.json (relative path: ./dist/budle.js)
      no extension
        Field 'browser' doesn't contain a valid alias configuration
        E:\MyHTML\webpage-study\dist\budle.js doesn't exist
      .js
        Field 'browser' doesn't contain a valid alias configuration
        E:\MyHTML\webpage-study\dist\budle.js.js doesn't exist
      .json
        Field 'browser' doesn't contain a valid alias configuration
        E:\MyHTML\webpage-study\dist\budle.js.json doesn't exist
      .wasm
        Field 'browser' doesn't contain a valid alias configuration
        E:\MyHTML\webpage-study\dist\budle.js.wasm doesn't exist
      as directory
        E:\MyHTML\webpage-study\dist\budle.js doesn't exist

webpack 5.24.2 compiled with 1 error and 1 warning in 2879 ms

原因版本太新,必须使用 -o 命令

webpack ./src/main.js -o ./dist/bundle.js

又一个版本太新的问题,webpack-dev-server使用

PS E:\MyHTML\webpage-study> npm run dev

> webpage-study@1.0.0 dev E:\MyHTML\webpage-study
> webpack-dev-server

E:\Node\nvm\node_global\webpack:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list
    at wrapSafe (internal/modules/cjs/loader.js:979:16)
    at Module._compile (internal/modules/cjs/loader.js:1027:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (E:\MyHTML\webpage-study\node_modules\webpack-dev-server\bin\webpack-dev-server.js:12:17)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! webpage-study@1.0.0 dev: `webpack-dev-server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the webpage-study@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     E:\Node\nvm\node_cache\_logs\2021-02-25T14_59_42_989Z-debug.log
PS E:\MyHTML\webpage-study> npm install html-webpack-plugin --save
npm WARN webpage-study@1.0.0 No description
npm WARN webpage-study@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ html-webpack-plugin@5.2.0
added 44 packages from 59 contributors in 11.559s

25 packages are looking for funding
  run `npm fund` for details

 package.json配置

{
  "name": "webpage-study",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "jquery": "^3.5.1",
  },
  "devDependencies": {
    "webpack-dev-server": "^3.11.0"
  }
}

后面配置下面几个东西后,问题变成了

{
  "name": "webpage-study",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server",
    "build": "webpack"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "html-webpack-plugin": "^5.2.0",
    "jquery": "^3.5.1",
    "webpack": "^5.24.2"
  },
  "devDependencies": {
    "webpack": "^5.24.2",
    "webpack-cli": "^4.5.0",
    "webpack-dev-server": "^3.11.0"
  }
}

PS E:\MyHTML\webpage-study> npm run dev

> webpage-study@1.0.0 dev E:\MyHTML\webpage-study
> webpack-dev-server

internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module 'webpack-cli/bin/config-yargs'
Require stack:
- E:\MyHTML\webpage-study\node_modules\webpack-dev-server\bin\webpack-dev-server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (E:\MyHTML\webpage-study\node_modules\webpack-dev-server\bin\webpack-dev-server.js:65:1)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'E:\\MyHTML\\webpage-study\\node_modules\\webpack-dev-server\\bin\\webpack-dev-server.js'
  ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! webpage-study@1.0.0 dev: `webpack-dev-server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the webpage-study@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     E:\Node\nvm\node_cache\_logs\2021-02-25T15_22_07_688Z-debug.log

最后将webpack-cli版本降下来解决问题。

    "webpack-cli": "^4.5.0"     →    "webpack-cli": "^3.3.12",

 

最后这几个就是博主使用的所有插件配置。

package.json

{
  "name": "webpage-study",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bootstrap": "^3.4.1",
    "html-webpack-plugin": "^5.2.0",
    "jquery": "^3.5.1",
    "mint-ui": "^2.2.13",
    "popper.js": "^1.16.1",
    "vue": "^2.6.12",
    "vue-loader": "^15.9.6",
    "vuex": "^3.6.2",
    "webpack": "^5.24.2"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-plugin-component": "^1.1.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-stage-0": "^6.24.1",
    "css-loader": "^5.1.0",
    "file-loader": "^6.2.0",
    "less": "^4.1.1",
    "less-loader": "^8.0.0",
    "moment": "^2.29.1",
    "node-sass": "^5.0.0",
    "sass-loader": "^11.0.1",
    "style-loader": "^2.0.0",
    "url-loader": "^4.1.1",
    "vue-resource": "^1.5.2",
    "vue-router": "^3.5.1",
    "vue-template-compiler": "^2.6.12",
    "webpack": "^5.24.2",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.0"
  }
}

webpack.config.js

const path = require('path')

const webpack = require('webpack')

const htmlWebpackPlugin = require('html-webpack-plugin')
// vue 15以上版本需要额外配置
const vueLoaderPlugin = require('vue-loader/lib/plugin')

module.exports = {
    entry: path.resolve(__dirname, "./src/main.js"), //已多次提及的唯一入口文件 
    output: {
        path: path.resolve(__dirname, "./dist"), //打包后的文件存放的地方 
        filename: "bundle.js" //打包后输出文件的文件名 
    },
    devServer: {
        open: true, // 自动打开浏览器
        port: 3000, // 设置启动时候的运行端口
        contentBase: 'src', // 指定托管的根目录
        hot: true // 启用热更新 的 第1步
    },
    plugins: [ // 配置插件的节点
        new webpack.HotModuleReplacementPlugin(), // new 一个热更新的 模块对象, 这是 启用热更新的第 3 步
        new htmlWebpackPlugin({ // 创建一个 在内存中 生成 HTML  页面的插件
            template: path.join(__dirname, './src/index.html'), // 指定 模板页面,将来会根据指定的页面路径,去生成内存中的 页面
            filename: 'index.html' // 指定生成的页面的名称
        }),
        new vueLoaderPlugin()
    ],
    module: {
        rules: [{
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }, //  配置处理 .css 文件的第三方loader 规则
            {
                test: /\.less$/,
                use: ['style-loader', 'css-loader', 'less-loader']
            }, //配置处理 .less 文件的第三方 loader 规则
            {
                test: /\.scss$/,
                use: ['style-loader', 'css-loader', 'sass-loader']
            }, // 配置处理 .scss 文件的 第三方 loader 规则
            {
                test: /\.(jpg|png|gif|bmp|jpeg)$/,
                // 新版本无法适用
                // use: 'url-loader?=limit=1080&name=[hash:8]-[name].[ext]'
                use: [{
                    loader: 'url-loader',
                    options: {
                        limit: 1080, // 限制大图片以base64传输,小图片以原数据传输
                        name: '[hash:8]-[name].[ext]', // 配置生成图片的名称
                        // 不启用ES6语法
                        esModule: false
                    }
                }]
            }, // 处理图片路径的loader
            {
                test: /\.(ttf|eot|svg|woff|woff2)$/,
                use: 'url-loader'
            }, // 处理 字体文件的 loader 
            {
                test: /\.js$/,
                use: 'babel-loader',
                exclude: /node_modules/
            }, // 配置 Babel 来转换高级的ES语法
            {
                test: /\.vue$/,
                use: 'vue-loader'
            } // 处理 .vue 文件的 loader
        ]
    },
    resolve: {
        alias: { // 修改 Vue 被导入时候的包的路径
            "vue$": "vue/dist/vue.js"
        }
    }
}

 

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要将webpack更新到webpack5,你可以按照以下步骤进行操作: 1. 首先,确保你的项目已经安装了webpack4,并且项目中的webpack相关的依赖包已经经过优化。 2. 在开始升级之前,你需要了解webpack5的新特性和改动,以便确定是否会对你的项目产生影响。你可以查阅webpack5的官方文档,了解新版本的改进。 3. 接下来,你可以通过以下几个步骤来升级webpack: a. 首先,升级webpack的主要依赖包。你可以修改项目的package.json文件,将webpack相关的依赖包的版本号修改为webpack5对应的版本号。 b. 然后,运行npm install命令来安装新版本的依赖包。 c. 接下来,你需要根据你的项目需求和配置,逐步迁移你的webpack配置文件。由于webpack5引入了一些新的配置项和改动,你需要根据官方文档和你的项目需求,逐步修改和调整配置文件,以确保项目可以正常运行。 d. 最后,你可以运行项目,并进行测试和调试,以确保项目在升级到webpack5之后可以正常工作。 4. 在升级过程中,你可能会遇到一些兼容性问题或者其他异常情况。在这种情况下,你可以通过查阅webpack的官方文档、搜索相关的社区讨论或者咨询其他开发者的经验来解决问题总结起来,将webpack更新到webpack5的过程主要包括了解新版本的改进、升级依赖包、迁移配置文件和测试调试等步骤。希望这些步骤能帮助你成功地将webpack更新到webpack5,并实现项目的优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hikktn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值