这篇文章只讲一件事:在 Vue 项目里打印,用 web-print-pdf(npm 包)就够了。下面给出做法和可复用代码。...为什么不直接用 window.print需要用户点确认,不适合静默/批量不能可靠指定打印机、纸张、边距多浏览器差异大,行为不稳定为什么用 web-print-pdf安装 npm 包,调用 API 即可支持...PDF / HTML / 图片可指定打印机、纸张、边距、份数、单双面支持静默与批量队列配合本地服务规避浏览器限制在 Vue 项目中 5 分钟接入1)安装依赖npm i web-print-pdf2)基础用法...// src/views/Order.vue(示例)import { printHtml, printHtmlByUrl } from 'web-print-pdf';export default {...通常有两类生成方式:— 后端生成(Puppeteer/Playwright/Electron)稳定,字体与版式一致;适合批量/离线;可审计需要规划算力与并发,打包字体与静态资源— 前端生成(DOM→PDF,如
go的编译器会在 $GOPATH/src 下面寻找对应的模块,src 下的每一个目录都可以对应一个模块,目录中的目录也可以是一个模块 下面展示如何在入口文件main.go 里引入非标准库model包中的变量...package main import ( "fmt" // 引包 // 省略GOPATH/src, Go编译的时候会自动在src目录下寻找 "go_code/pointer/model"...当modules功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module 利用GO111MODULE和GOPROXY,...go.mod 提供了module, require、replace和exclude 四个命令 module 语句指定包的名字(路径) require 语句指定的依赖项模块 replace...包管理模式一直是各个开发语言所面临的棘手问题,比如NPM和Yarn,设计一种完美的包管理模式还需要不断探索实践。
HTML、CSS、图片等)提供服务;支持配置代理: 将 API 请求转发到不同的服务器,解决跨域问题;Gzip 压缩: 支持 Gzip 压缩,提高传输效率;NPM安装软件包:NPM安装软件包:webpack-dev-server...上述我们通过命令行设置环境变量,实现开发\生产环境配置的切换:但是: cross-env 设置的只支持Node.Js环境生效,前端的代码无法访问 process.env.NODE_ENV那么,开发者如何在前端代码中判断开发...,生产模式下打印语句失效://1.webpack 中配置 DefinePlugin 插件//2.前端代码判断开发\生产环境,给console.log函数对象重新赋值,生产环境则打印语句失效;if (process.env.NODE_ENV...,就可以极大的减轻本地的包大小,减轻服务器运行压力;优化需求:生产环境的第三方依赖使用CND进行管理,减轻服务器内存开发环境因为是本地所以: 还是建议NPM使用本地的包,实际情况根据公司而定,部分公司其实用不上这个本地环境使用三方依赖...:广告: AXIOS学习NPM安装axios 依赖: npm install axios --save 使用三方axios包,登录页面打开查询北京的天气情况: 此处接口来源,中国气象局公共API;import
webpack 模块支持如下语句: ES2015 import 语句; CommonJS require() 语句; AMD define 和 require 语句; css/sass/less 文件中...@import 语句; 样式 (url(...))...中引入 leo.scss 文件: // src/index.js import '....如将三个源文件打包一个 bundle 中,其中一个文件的代码报错,那么堆栈追中就会指向 bundle。...gzip压缩 overlay: true, // 在浏览器中显示全屏覆盖 stats: "errors-only" ,// 只显示包中的错误 open:true, // 启用“打开”后,dev服务器将打开浏览器
后,函数声明变成一个, main.js 中定义的内容被直接注入到 main.js 对应模块中,这样做的好处: 「代码体积更小」,因为函数申明语句会产生大量代码,导致包体积增大(模块越多越明显); 代码在运行时因为创建的函数作用域更少.../src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist...自动启用 在 webpack 的 mode 设置为 production 时,会默认自动启用 Scope Hooting。...手动启用 在 webpack 中已经内置 Scope Hoisting ,所以用起来很简单,只需要配置ModuleConcatenationPlugin 插件即可: // webpack.config.js...resolve: { // 针对 npm 中的第三方模块优先采用 jsnext:main 中指向的 ES6 模块化语法的文件 mainFields: ['jsnext:main
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。...go mod命令: golang 提供了 go mod命令来管理包。go mod有以下命令: ? go.mod如何在项目中使用?...go.mod 提供了module, require、replace和exclude四个命令 module语句指定包的名字(路径) require语句指定的依赖项模块 replace语句可以替换依赖项模块...注意:子目录里是不需要init的,所有的子目录里的依赖都会组织在根目录的go.mod文件里 接下来,让我们的项目依赖一下第三方包: 如修改hello.go文件如下,按照过去的做法,要运行hello.go...直接 go run hello.go 稍等片刻… go 会自动查找代码中的包,下载依赖包,并且把具体的依赖关系和版本写入到go.mod和go.sum文件中。
现在在 dist/index.html 中引入打包后的 main.js,打开浏览器测试: src="....webpack 模块支持如下语句: ES2015 import 语句; CommonJS require() 语句; AMD define 和 require 语句; css/sass/less 文件中...@import 语句; 样式 (url(...))...加载 Sass 文件 需要使用到 sass-loader 的插件,这里先安装: npm install sass-loader node-sass --save-dev 在 src/style 目录下添加...中引入 leo.scss 文件: // src/index.js import '.
后,函数声明变成一个, main.js 中定义的内容被直接注入到 main.js 对应模块中,这样做的好处: 代码体积更小,因为函数申明语句会产生大量代码,导致包体积增大(模块越多越明显); 代码在运行时因为创建的函数作用域更少.../src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist...自动启用 在 webpack 的 mode 设置为 production 时,会默认自动启用 Scope Hooting。...手动启用 在 webpack 中已经内置 Scope Hoisting ,所以用起来很简单,只需要配置ModuleConcatenationPlugin 插件即可: // webpack.config.js...resolve: { // 针对 npm 中的第三方模块优先采用 jsnext:main 中指向的 ES6 模块化语法的文件 mainFields: ['jsnext:main
webpack 模块可以支持如下: ES2015 import 语句 CommonJS require() 语句 AMD define 和 require 语句 css/sass/less 文件中的 @...import 语句。...忽略的文件中不应该含有 import, require, define 的调用,或任何其他导入机制。忽略大型的 library 可以提高构建性能。...use: [ "style-loader" ])是 loader 属性的简写方式(如:use: [ { loader: "style-loader "} ])。...安装 npm i -D babel-loader babel-core babel-preset-env 用法 在webpack的配置文件中,添加js的处理模块。
代码实例: // webpack.config.js const HtmlWebpackPlugn = require('html-webpack-plugin') // 提前通过 npm 安装 const...默认 publicPath 是 /,所以你的包可以通过 http://localhost:8080/bundle.js 访问。...内联:在每个 import 语句中显式指定 loader。 可以在 import 语句或任何等效于 import 的方式中指定 loader。使用 ! 将资源中的 loader 分开。...它帮助 webpack 从每个如 require/import 语句中,找到需要引入到 bundle 中的模块代码。...// 在 import/require 中给定的相对路径,会拼接此上下文路径,以产生模块的绝对路径。 import '../src/file1'; import './file2'; 3.
,如 promise,include 等,在js文件中 require 引入即可 eslint-loader:校验 js 是否符合规范,可自行在 eslint 网站上配置下载 安装依赖 npm i @babel...如果想要优先于某个目标目录搜索,则需把该目录放到目标目录前面,可详看官网例子 alias:设置别名,方便使用,下面的例子应用于 src 目录下的路径使用 mainFields:当从 npm 包中导入模块时...如 moment 包内引入了很多语言包,这些语言包都放在 locale 文件夹下,但大部分实际场景只会引用一个的语言包,因此打包时可忽略 moment 目录下的 locale 语言包 new webpack.IgnorePlugin...,如 promise,include 等,在js文件中 require 引入即可 eslint-loader:校验 js 是否符合规范,可自行在 eslint 网站上配置下载 安装依赖 npm i @babel...如 moment 包内引入了很多语言包,这些语言包都放在 locale 文件夹下,但大部分实际场景只会引用一个的语言包,因此打包时可忽略 moment 目录下的 locale 语言包 new webpack.IgnorePlugin
假如,构建脚本是: npm run build 复制代码 那么你知道如何在执行 npm run build 指令执行之前,做一些特定的别的操作,或者在执行之后执行一些操作,应该怎么做吗?...比如: { "bin": { "i-love-u": "src/index.js" } } 复制代码 一旦你在项目里通过 npm link 发布了,恭喜你,你只需要在命令行中输入 i-love-u...'); 复制代码 两种语句引入的是同一个文件吗?...属性存在时,构建工具(如 webpack、rollup)会把 module 属性作为 ESM 的入口来使用。...文件可以设置项目级的配置,以上两行代码分别做了如下两件事: @juejin 命名空间的项目,直接在私有源请求包; 其他包则从 taobao 源发起请求。
你将会了解如下知识点: 如何安装项目插件 添加浏览器支持 如何配置scss/stylus共享全局变量 如何整合elementUI等第三方框架并实现按需引入 配置单/多页面 如何配置自定义环境变量 如何在...对于普通的 npm 包而言,我们仍然可以(根据所选的 npm 包)使用包管理器。...// subpage: 'src/subpage/main.js' }, } 6.如何配置自定义环境变量 你可以替换你的项目根目录中的下列文件来指定环境变量: .env...@import "~@/style/variables.styl";` // } }, // 启用 CSS modules for all css...本文参考vue-cli官网 如想获取思维导图高清源文件,请扫描下方公众号: [image.png] 在公众号点击进群,可以加入vue学习小组,一起学习前端技术
,如 promise,include 等,在js文件中 require 引入即可eslint-loader:校验 js 是否符合规范,可自行在 eslint 网站上配置下载安装依赖npm i @babel...如果想要优先于某个目标目录搜索,则需把该目录放到目标目录前面,可详看官网例子alias:设置别名,方便使用,下面的例子应用于 src 目录下的路径使用mainFields:当从 npm 包中导入模块时(...), ]}copy-webpack-plugin拷贝插件,把某个文件夹导出到打包文件夹中,如文档文件夹(如 doc 文件夹)安装依赖npm i copy-webpack-plugin -D配置 webpack.config.jsconst...不解析某个引用包中的依赖关系,来提高构建性能。...如 moment 包内引入了很多语言包,这些语言包都放在 locale 文件夹下,但大部分实际场景只会引用一个的语言包,因此打包时可忽略 moment 目录下的 locale 语言包 new webpack.IgnorePlugin
* 以下模块地址均为官网地址,如果觉得请求地址慢,可以访问淘宝镜像的包说明地址,http://npm.taobao.org/ * 以下模块介绍顺序不分先后,代码仅供参考,亲测可用。...使用 var rename = require('gulp-rename'); gulp.src("....false,//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)] compatibility: ‘ie7′,//保留ie7及以下兼容写法 类型:String 默认:”or’‘ [启用兼容模式...,直接文件目录即可,如/**/* 使用 var del=require('del'),vinylPaths = require('vinyl-paths'); //删除指定路径的文件 gulp.task...dist/css/*min.css'], cb);}) //删除管道中的文件 gulp.task("del-less",function(){ return gulp.src('src/less/demo.less
使用 Webpack 2.1 使用步骤 安装, npm install webpack webpack-cli -D 编辑配置文件(webpack.config.js) const path = require...const path = require("path"); module.exports = { entry: path.join(__dirname, "src", "index.js"),...因为这个不是 loader,而是 plugin(插件),所以配置需要引入插件,然后在 plugins中实例化插件 const path = require("path"); const HtmlWebpackPlugin...= require("html-webpack-plugin"); module.exports = { entry: path.join(__dirname, "src", "index.js...require 语句,并在运行时调用 injectStyle 等函数将内容注入到页面的 style 标签 3.2 Loader 其他特性 链式执行(过程的输出刚好是下一个过程的输入) 支持异步执行
操作 - 创建package.json文件 1、创建一个webpack的项目根目录(如wptest),然后在根目录进行命令行操作: npm init -y 初始化一个package.json文件 然后将...save-dev webpack 完成安装之后如下如所示: 2、在根目录下方新建如下文件夹与文件(dist 、src、index.html、index.js): 3、接着,我们做一些尝试:使用loadsh...需要注意的是,不进行解析的文件中不能含有import,require,define等其他导入机制。通常,我们可以选择不对大文件库进行解析,如jquery。...如css-loader转换css文件 : 使用前先安装 npm i -D css-loader module: { rules: [ { test:...如打包、压缩,定义环境变量…插件能用来处理各种各样的任务。 3️⃣.
如何在 JavaScript 中将任何基数的字符串转换为整数? 在 JavaScript 中,parseInt() 函数用于将字符串转换为整数。...转义字符:如果要使用一些特殊字符(如单引号和双引号、撇号和与号),则此字符是必需的。...JavaScript 不是概念级的作用域,在任何函数中声明的变量在函数内部都有作用域。 17. 如何在 JavaScript 中创建通用对象?...try 语句允许您测试代码块以检查错误。 catch 语句允许您处理错误(如果存在)。 throw 语句允许您犯自己的错误。 19. 模糊查找功能有什么用? 它用于从所选元素中删除焦点。...run // You can change the port by the following method: // port = 9527 npm run dev OR npm run dev --