欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

NPM和webpack初体验

程序员文章站 2022-03-03 22:05:31
...

NPM 包管理工具

  • 安装NPM工具

windows 下载Node: http://nodejs.cn 安装即可

NPM和webpack初体验

  • npm 命令
  1. npm -v //通过查看版本,看npm是否安装成功
  2. npm install <Module Name> //使用 npm 命令安装模块 install可以简写i
  3. //比如 npm i vue
  4. npm list -g //查看所有全局安装的模块
  5. npm list vue //查看某个模块的版本号
  6. npm -g install npm@5.9.1 //(@后跟版本号)这样我们就可以更新npm版本
  7. npm install -save moduleName // # -save 在package文件的dependencies节点写入依赖。
  8. npm install -save-dev moduleName //# -save-dev 在package文件的devDependencies节点写入依赖
  9. //dependencies:运行时的依赖,发布后,即生产环境下还需要用的模块
  10. //devDependencies:开发时的依赖。里面的模块是开发时用的,发布时用不到它,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的
  11. //简写
  12. i install的简写
  13. -S 是--save的简写
  14. -D 是--save-dev 的简写
  15. -g 是--global的简写

webpack

  • webpack安装和体验
  1. npm install webpack webpack-cli webpack-dev-server -D //安装
  2. 控制台运行命令:webpack --mode development (开发环境)
  3. 控制台运行命令:webpack --mode production (生产环境)
  4. node dist/main.js 执行打包后js
  5. ctrl + alt + l 格式化代码
  • 报错及解决

NPM和webpack初体验

网上解决方案

  1. 1、以管理员权限打开PowerShell
  2. 2、输入Set-ExecutionPolicy RemoteSigned命令 将脚本执行权限修改为RemoteSigned
  3. 3、输入Y以确认

对我没用,于是在设置中搜索 PowerShell

NPM和webpack初体验

NPM和webpack初体验

  • webpack.config.js 核心配置项
  1. // resolve 用来拼接绝对路径的方法
  2. const {resolve} = require('path');
  3. //引入html文件处理插件
  4. const HtmlWebpackPlugin = require('html-webpack-plugin');
  5. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  6. module.exports ={
  7. // entry: './src/index.js',
  8. entry: {
  9. vendor: ['./src/jquery.js','./src/common.js'],
  10. index: ["./src/index.js","./src/wto.js"],
  11. cart:'./src/cart.js'
  12. },
  13. // output: {
  14. // /* 输出文件名 */
  15. // filename: "build.js",
  16. // /* 输出路径 一般采用绝对路径 */
  17. // path: resolve(__dirname, 'build')
  18. // },
  19. output: {
  20. filename: "[name].js",
  21. path:resolve(__dirname, 'build')
  22. },
  23. module: {
  24. rules: [
  25. {
  26. test:/\.css$/,
  27. use: [
  28. 'style-loader',
  29. 'css-loader'
  30. ]
  31. },
  32. // {
  33. // test:/\.lcss$/,
  34. // use: [
  35. // 'style-loader',
  36. //
  37. // 'css-loader',
  38. // 'less-loader'
  39. // ]
  40. // },
  41. {
  42. test:/\.scss$/,
  43. use: [
  44. 'style-loader',
  45. 'css-loader',
  46. 'sass-loader'
  47. ]
  48. }
  49. ]
  50. },
  51. plugins: [
  52. // new HtmlWebpackPlugin()
  53. new HtmlWebpackPlugin({
  54. // 复制 './src/index.html'文件, 并自动引入打包输出的所有资源(JS/CSS)
  55. template: "./src/index.html",
  56. // 默认是index.html名称,通过filename设置输出文件名称
  57. chunks: ["index","vendor"],
  58. minify:{
  59. // 移除空格
  60. collapseWhitespace:true,
  61. // 移除注释
  62. removeComments:true
  63. }
  64. }),
  65. new HtmlWebpackPlugin({
  66. filename: "cart.html",
  67. template: "./src/cart.html",
  68. chunks: ["cart","vendor"]
  69. }),
  70. new MiniCssExtractPlugin()
  71. ],
  72. mode: "development" // development || production
  73. }