npm引用jquery

1、创建项目

  执行npm init -y,初始化包管理配置文件package.json

2、新建src源代码目录,新建src/index.html和src/index.js脚本文件

3、npm install jquery -S

4、index.js

  //使用ES6导入语法

  import $ from 'jquery'

  $(function(){

    $('li:odd').css('background-color','pink')

  })

  

  在index.html中引用index.js <script src='./index.js'></script>

5、安装webpack

  npm install webpack@5.42.1 webpack-cli@4.7.2 -D

6、项目配置webpack

  ①在项目根目录中,创建名webpack.config.js的webpack配置文件,并初始化如下的基本配置:  

const path=require('path')
module.exports = { 
  entry:{
    index:path.join(__dirname, './src/index.js')
  },
  output:{
    filename:'main.js',
    path:path.resolve(__dirname,'./dist')
  },
  mode: 'development' //mode用来指定构建模式。可选值有development 和 production(会压缩打包文件)
}

  ②在package.json 的 scripts节点下,新增dev脚本如下:

    "scripts" : {

      "dev" : "webpack"  //script节点下的脚本,可以通过npm run 执行。例如npm run dev

      "build" : "webpack --mode production" //打包发布

    }

  ③在终端中运行npm run dev命令,启动webpack进行项目的打包构建

7、引用dist下js

  在index.html中引用index.js <script src='../dist/main.js'></script>

 

8、webpack插件

  ① webpack-dev-server,修改源代码不需要每次重新npm run dev

    npm install webpack-dev-server@3.11.2 -D

    修改package.json -> scripts 中的dev命令如下:

 "scripts": {
  "dev" :"webpack serve",//script节点下的脚本,可以通过 npm run 执行

}

再次运行npm run dev命令,重新进行项目的打包
在浏览器中访问http://localhost:8080地址,查看自动打包效果

在index.html中引用index.js <script src='/main.js'></script> 读取内存中的main.js

 

 ②html-webpack-plugin 复制src/index.html到根目录,方便访问http://localhost:8080地址时不再次点击src目录

  npm install html-webpack-plugin@5.3.2 -D

//导入 html-webpack-plugin这个插件,得到插件的构造函数
const HtmlPlugin = require('html-webpack-plugin')

//new构造函数,创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
  //指定要复制哪个页面
  template: './src/index.html ',
  //指定复制出来的文件名和存放路径
  filename: './index.html'
})

//在moudle.exports中加入

     plugins: [htmlPlugin]

    //在moudle.exports中加入

devServer: {
  //首次打包成功后,自动打开浏览器
  open: true,
  port: 8080,
  //指定运行的主机地址
  host:'127.0.0.1'
}

 

在index.html中会自动填充内存的index.js <script src='/main.js'></script> ,所以页面中的引用去掉就可以

8、webpack的loader

  ①babel-loader 打包高级js语法,例如装饰器

  npm install -D babel-loader @babel/core @babel/plugin-proposal-decorators  (另一个视频 @babel/ plugin-proposal-class-properties)

rules: [
  {
    test: /\.m?js$/,
    exclude: /(node_modules|bower_components)/,
    use: {
      loader: 'babel-loader'
    }
  }
]

 

  babel.config.js

  module.exports =

  { "plugins": [["@babel/plugin-proposal-decorators",{legacy:true}] ]}

9、webpack配置

  SourceMap

  devtool 开发环境为eval-source-map(定位正确行号,显示源码),生产环境为nosources-source-map(定位正确行号,不显示源码)

  

  

posted on 2021-10-10 14:26  棉花糖_30  阅读(3038)  评论(0编辑  收藏  举报

导航