sources文件详解
- 格式:doc
- 大小:14.04 KB
- 文档页数:5
深⼊浅出的webpack构建⼯具---devTool中SourceMap模式详解(四)阅读⽬录⼀:什么是SourceMap?我们在项⽬进⾏打包后,会将开发中的多个⽂件代码打包到⼀个⽂件中,并且经过压缩,去掉多余的空格,且babel编译化后,最终会⽤于线上环境,那么这样处理后的代码和源代码会有很⼤的差别,当有bug的时候,我们只能定位到压缩处理后的代码位置,⽆法定位到开发环境中的代码,对于开发不好调式,因此sourceMap出现了,它就是为了解决不好调式代码问题的。
在讲解之前,我们⾸先看下项⽬中的⽬录结构如下:### ⽬录结构如下:demo1 # ⼯程名| |--- dist # 打包后⽣成的⽬录⽂件| |--- node_modules # 所有的依赖包| |--- js # 存放所有js⽂件| | |-- demo1.js| | |-- main.js # js⼊⼝⽂件| || |--- webpack.config.js # webpack配置⽂件| |--- index.html # html⽂件| |--- styles # 存放所有的css样式⽂件| |--- .gitignore| |--- README.md| |--- package.json| |--- .babelrc # babel转码⽂件main.js 代码如下:import demo1Func from './demo1.js';console.log('main.js');demo1.js 代码如下:export default function printMe() {console.log('11111111');}webpack.config.js 代码配置如下:const path = require('path');// 提取css的插件const ExtractTextPlugin = require('extract-text-webpack-plugin');const ClearWebpackPlugin = require('clean-webpack-plugin');module.exports = {entry: './js/main.js',output: {filename: 'bundle.js',// 将输出的⽂件都放在dist⽬录下path: path.resolve(__dirname, 'dist'),publicPath: '/dist'},mode: 'development',module: {rules: [{// 使⽤正则去匹配要⽤该loader转换的css⽂件test: /\.css$/,loaders: ExtractTextPlugin.extract({// 转换 .css⽂件需要使⽤的Loaderuse: ['css-loader']})},{test: /\.(png|jpg)$/,loader: 'url-loader',options: {limit: 10000,name: '[name].[ext]'}},{test: /\.js$/,exclude: /(node_modules)/, // 排除⽂件loader: 'babel-loader'}]},resolve: {// modules: ['plugin', 'js']},externals: {jquery: 'jQuery'},devtool: 'eval',devServer: {// contentBase: path.join(__dirname, "dist"),port: 8081,host: '0.0.0.0',headers: {'X-foo': '112233'},// hot: true,inline: true,open: true,overlay: true,stats: 'errors-only'},plugins: [// new ClearWebpackPlugin(['dist']),new ExtractTextPlugin({// 从js⽂件中提取出来的 .css⽂件的名称filename: `main.css`})]};基本结构如上,现在我们可以来理解 webpack中的SourceMap的⼏种常见⽅式了。
【Java】class.jar和sources.jar及javadoc.jar三种jar包⼀、普及jar包知识 例如(举例⼦解释)类⽂件(.class) test-java-1.0-SNAPSHOT.jar⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar资源包(code) test-java-1.0-SNAPSHOT-sources.jar⼆、使⽤⽅法1.类⽂件(.class) test-java-1.0-SNAPSHOT.jar 反编译,最暴⼒直接的⽅法,将jar包拖进IDEA⾥查看2.⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar 解压该⽂件,打开index.html查看3.资源包 test-java-1.0-SNAPSHOT-sources.jar 拖进IDEA直接查看⼆、⽣成⽅法1.类⽂件(.class) test-java-1.0-SNAPSHOT.jar 直接使⽤maven打包⽣成即可2.⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar 使⽤ maven-javadoc-plugin 插件⽣成javadoc.jar3.资源包 test-java-1.0-SNAPSHOT-sources.jar 使⽤ maven-source-plugin 插件⽣成sources.jar完整pom⽂件如下:1<?xml version="1.0" encoding="UTF-8"?>2<project xmlns="/POM/4.0.0"3 xmlns:xsi="/2001/XMLSchema-instance"4 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">5<modelVersion>4.0.0</modelVersion>67<groupId>com.test</groupId>8<artifactId>test-java</artifactId>9<version>1.0-SNAPSHOT</version>10<dependencies>11<dependency>12<groupId>junit</groupId>13<artifactId>junit</artifactId>14<version>4.12</version>15<scope>compile</scope>16</dependency>17</dependencies>1819<build>2021<plugins>22<plugin>23<!-- Maven 编译插件24指定maven编译的jdk版本,如果不指定,25 maven3默认⽤jdk 1.5 maven2默认⽤jdk1.3 -->26<groupId>org.apache.maven.plugins</groupId>27<artifactId>maven-compiler-plugin</artifactId>28<version>3.8.1</version>29<configuration>30<!-- ⼀般⽽⾔,target与source是保持⼀致的,但是,有时候为了让程序能在其他版本的jdk中运⾏(对于低版本⽬标jdk,源代码中不能使⽤低版本jdk中不⽀持的语法),会存在target不同于source的情况 --> 31<source>1.8</source><!-- 源代码使⽤的JDK版本 -->32<target>1.8</target><!-- 需要⽣成的⽬标class⽂件的编译版本 -->33<encoding>UTF-8</encoding><!-- 字符集编码 -->34<verbose>true</verbose>35<showWarnings>true</showWarnings>36<fork>true</fork><!-- 要使compilerVersion标签⽣效,还需要将fork设为true,⽤于明确表⽰编译版本配置的可⽤ -->37<executable><!-- path-to-javac --></executable><!-- 使⽤指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->38<compilerVersion>1.3</compilerVersion><!-- 指定插件将使⽤的编译器的版本 -->39<meminitial>128m</meminitial><!-- 编译器使⽤的初始内存 -->40<maxmem>512m</maxmem><!-- 编译器使⽤的最⼤内存 -->41<!-- <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument><!– 这个选项⽤来传递编译器⾃⾝不包含但是却⽀持的参数选项 –>-->42</configuration>43</plugin>4445<!-- ⽣成javadoc⽂档包的插件 -->46<plugin>47<groupId>org.apache.maven.plugins</groupId>48<artifactId>maven-javadoc-plugin</artifactId>49<version>3.2.0</version>50<executions>51<execution>52<id>attach-javadocs</id>53<goals>54<goal>jar</goal>55</goals>56</execution>57</executions>58</plugin>5960<!-- ⽣成sources源码包的插件 -->61<plugin>62<groupId>org.apache.maven.plugins</groupId>63<artifactId>maven-source-plugin</artifactId>64<version>3.2.1</version>65<configuration>66<attach>true</attach>67</configuration>68<executions>69<execution>70<!-- 在package阶段之后会执⾏源代码打包 -->71<phase>package</phase>72<goals>73<goal>jar-no-fork</goal>74</goals>75</execution>76</executions>77</plugin>78</plugins>79</build>8081</project>配置好插件后,使⽤maven package命令既能在target⽬录中查看到三个jar包 命令:mvn package如果要把三种jar包安装到本地仓库 命令:mvn install如果要把三种jar包发布到远程仓库 命令:mvn deploy。
Chrome开发者⼯具详解(四)之Elements、Console、Sources⾯板Elements⾯板实时编辑DOM节点和CSS样式双击DOM树视图⾥⾯的节点,可以实时编辑标签属性,修改的效果会⽴刻反应在浏览器⾥点击右侧Style⾯板,可以实时修改CSS的属性值,这⾥⾯的所有样式Name和Value都是可以编辑的;在每个属性后⾯单击可以添加新的样式,如下图:点击右侧Computed⾯板,可以编辑左侧选中的盒⼦模型参数,所有的值都是可以修改的;点击不同的位置(top、bottom、left、right) 就可以修改元素的padding、border、margin属性值。
查看⽹页的本地修改历史,点击Styles⾯板中修改过属性的⽂件名,会跳转到Source⾯板在⽂件位置右击选择Local modifications,可以查看本地的所有修改记录,点击指定的时间点可以看到粉红背景的删除内容和绿⾊背景的添加内容Console⾯板控制台输出⽇志,通过JS代码或者命令⾏console.log()、console.warn()和console.error()可以将⽇志信息输出到控制台 console.log:显⽰⼀般的基本⽇志信息 console.group:显⽰的基本⽇志太多时,将相关的⽇志进⾏分组 console.warn:显⽰带有黄⾊⼩图标的警告信息 console.error:显⽰带有红⾊⼩图标的红⾊的错误信息 console.assert:当第⼀个参数为false时,才会显⽰第⼀个参数的值 可以根据JS条件判断输出不同的⽇志信息注:当需要换到下⼀⾏⽽不是回车的时候,请按Shift+Enter控制台交互 JS表达式计算,在上⼀⼩节,我们已经看到可以在控制台输⼊JS表达式点击Enter,即可得到表达式的值,当你在控制台输⼊命令时,会弹出相应的智能提⽰框,你可以⽤Tab⾃动完成当前的建议项选择元素 快捷⽅式 $():返回与指定的CSS选择器相匹配的第⼀个元素,等同于document.querySelector() $$():返回与指定的CSS选择器相匹配的所有元素的数组,等同于document.querySelectorAll() $x():返回与指定的XPath相匹配的所有元素的数组设置断点 断点可以在DOM元素节点发⽣改变时、XHR⽣命周期状态改变时、指定的事件执⾏时被触发 ① DOM元素节点发⽣改变时 在Elements⾯板中指定的DOM节点上右击,在弹出的菜单中选择Break on...可以看到三个选择项,⽐如我们选择Subtree modifications,那么当选择的节点⾥⾯的⼦节点被添加、删除、修改,则断点就会被触发。
source的用法source的用法1. source的基本含义source在英语中是源头、来源的意思,引申为消息来源、资料来源等。
在计算机领域,source一词表示源代码或配置文件等供计算机程序读取和执行的内容。
2. source作为名词的用法•消息来源(source of information):source常用于指代获取特定信息的来源,例如新闻报道中的消息来源、学术论文中的文献来源等。
•资料来源(source of data):source也可以表示数据的来源,例如调查报告中的数据来源、研究论文中引用的数据来源等。
•音视频来源(source of media):source还可以表示音视频的来源,比如电影、音乐等的制作方或出版商。
3. source作为动词的用法•引用(source):source作为动词时,常用于引用、援引某处信息或数据,用以支持自己的观点或论证。
例如,在研究论文中引用他人的研究成果作为理论基础。
•查找(source):source还可指在某处查找、获取特定信息或数据。
例如,在软件开发中,程序会通过source代码文件来查找特定模块的实现细节。
•读取(source):source也可表示读取某处的内容以供程序执行。
例如,在命令行中使用”source 文件名”命令将配置文件的内容读入当前的shell环境。
•提供(source):source还可用于表示提供或获取特定资源。
例如,在项目开发中,资源文件可以通过source方式提供给代码使用。
4. source的相关搭配词汇•数据源(data source):表示数据的来源,如数据库、文件等。
•信息来源(source of information):指提供、发布消息或信息的来源。
•新闻来源(news source):指发布新闻的媒体机构或个人。
•资源提供者(source provider):指提供特定资源的机构或个人。
以上是关于source的一些常见用法和搭配词汇的详细解释。
source的具体用法-回复【source的具体用法】source一词在英语中有多种用法,在不同语境下有不同的意思。
以下将详细介绍source的具体用法。
一、source作为名词的用法1. 资源,来源source作为名词时,常指某个事物或信息的来源或产生地点。
例如:The river is a source of drinking water for the town.(这条河是该镇的饮用水源。
)2. 来源,起源source也可以指某物或某事物的起源或引用。
例如:I found this interesting fact from a reliable source.(我从一个可靠的来源处得知这个有趣的事实。
)3. 出处,引用在学术写作中,source也可以指文章中引用的其他文献或资料。
例如:Make sure to cite your sources when writing a research paper.(写研究论文时要确保引用出处。
)4. 商家,供应商在商业领域中,source可以指从某商家或供应商购买产品或服务。
例如:We are looking for new software sources for our company.(我们正在寻找公司的新软件供应商。
)5. 消息来源,消息人士source还可以指提供某个消息或情报的来源或消息人士。
例如:Police are trying to identify the source of the leaked documents.(警方正在努力查明泄露文件的消息来源。
)二、source作为动词的用法1. 获取,寻求source作为动词时,常指寻找或获取某物或某信息。
例如:We need to source new materials for our manufacturing process.(我们需要为生产流程寻找新材料。
)2. 从某处获得source还可以指从某个特定地方或人那里获取某物或某信息。
WINCE源代码配置文件WINCE的编译工具Build.exe通过WINCE源代码配置文件提供的下面的信息来编译指定的目录及子目录的源代码(source code):1)要贯穿的目录。
2)要编译的C和微软的的Visual C++文件。
3)创建的二进制文件。
WINCE源代码配置文件是指下面类型的文件1)Dirs File指dirs文件,用于识别包含源代码的子目录,也就是要编译的源代码所在的目录。
2)Make File指文件夹下面的makefile文件,包含要编译和链接源代码所需要的变量。
3)Module-Definition File比如是power按键驱动文件下下面的PowerButton.DEF文件,包含在一个可执行或者dll文件中定义的共用符号、函数和变量的声明。
4)Sources File包含编译源代码所需要的宏变量。
编译工具贯穿一个目录树,先查找dirs文件,然后是sources文件。
其中dirs 文件指定要包含的源代码或是另外的包含sources文件的子目录。
当编译工具在当前的目录定位到一个sources文件,它就调用Nmake tool(Nmake.exe)来编译指定的C或C++源代码文件,并且根据包含在makefile文件的链接规则来链接目标模块。
图1下面就来分别学习这四种源代码配置文件:1.dirs文件dirs文件是一个text文件,它指定了包含要编译的源代码的目录,如SMDK6410 \SRC下的dirs内容:DIRS = \common \oal \kitl \drivers \bootloader这表示SMDK6410 \SRC目录下的dirs文件要编译common、oal、kitl、drivers 和bootloader目录下或者是这些目录下的子目录的源代码文件。
Dirs文件内容中使用DIRS、DIRS_CE和OPTIONAL_DIRS关键字来如何编译指定的目录1)DIRS如上面所示,DIRS用于指定要编译的目录,其中DIRS=*表示要编译当面所有的目录,另外上面的例子也可以改为下面的方式来指定要编译的目录DIRS=common oal kitl dirvers bootloader也就是用空格键把要编译的目录隔开,但这样不直观,不提倡采用这样的方式。
source在js中的用法JavaScript是一种广泛使用的编程语言,用于开发Web应用程序。
在JavaScript 中,source是一个常用的属性和方法,用于获取或设置某个对象的源代码或资源路径。
本文将详细介绍source在JavaScript中的用法以及它的相关特性。
source是一个属性,用于获取或设置某个对象的源代码或资源路径。
它可被用于不同的对象,包括<script>标签、图片对象、音视频对象等。
下面将依次介绍这些对象中source的用法。
首先,对于<script>标签,它用于在HTML页面中引入JavaScript代码。
在这种情况下,source属性用于获取或设置外部JavaScript文件的路径。
例如,我们可以通过以下代码来获取<script>标签中引入的JavaScript文件的路径:```javascriptconst scriptElement = document.querySelector('script');const sourcePath = scriptElement.src;```上述代码中,我们通过document的querySelector方法获取了页面中的第一个<script>标签,然后通过source属性获取了该标签中src属性的值,即外部JavaScript文件的路径。
接下来,对于图片对象,source属性用于获取或设置图片的资源路径。
例如,我们可以通过以下代码来获取图片的路径:```javascriptconst imageElement = document.querySelector('img');const sourcePath = imageElement.src;```上述代码中,我们通过document的querySelector方法获取了页面中的第一个<img>标签,然后通过source属性获取了该标签中src属性的值,即图片的路径。
source命令⽤法详解source命令⽤法1source FileNamesource命令作⽤在当前bash环境下读取并执⾏FileName中的命令。
*注:该命令通常⽤命令“.”来替代。
使⽤范例:1 2source filename. filename#(中间有空格)source命令(从 C Shell ⽽来)是bash shell的内置命令。
点命令,就是个点符号,(从Bourne Shell⽽来)是source的另⼀名称。
同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常⽤于重新执⾏刚修改的初始化⽂档,如 .bash_profile 和.profile 等等。
例如,假如在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则能够⽤source命令重新执⾏ .bash_profile 中的命令⽽不⽤注销并重新登录。
⽐如您在⼀个脚本⾥export $KKK=111 ,假如您⽤./a.sh执⾏该脚本,执⾏完毕后,您运⾏echo $KKK,发现没有值,假如您⽤source来执⾏,然后再echo,就会发现KKK=111。
因为调⽤./a.sh来执⾏shell是在⼀个⼦shell⾥运⾏的,所以执⾏后,结构并没有反应到⽗shell⾥,但是source不同他就是在本shell中执⾏的,所以能够看到结果。
source命令(从 C Shell ⽽来)是bash shell的内置命令。
点命令,就是⼀个点符号,(从Bourne Shell⽽来)是source的另⼀名称。
这两个命令都以⼀个脚本为参数,该脚本将作为当前shell的环境执⾏,即不会启动⼀个新的⼦进程。
所有在脚本中设置的变量将成为当前Shell的⼀部分。
source命令的⼀个妙⽤在编译核⼼时,常常要反复输⼊⼀长串命令,如1 2 3 4 5 6make mrproper make menuconfig make depmake clean make bzImage .......这些命令既长,⼜繁琐。
resources.arsc混淆原理resources.arsc是一个二进制文件,包含了Android应用程序中的资源信息,比如字符串、图标、布局等。
混淆原理是对resources.arsc文件进行加密或重命名,以使其难以被逆向工程分析和理解。
具体的混淆原理包括以下几个方面:1. 加密:可以对resources.arsc文件进行加密,使用加密算法对其中的内容进行加密,防止未经授权的访问和解析。
使用加密算法可以选择常见的对称加密算法,如AES或DES。
2. 重命名:可以对resources.arsc文件中的资源名称进行重命名,使用随机或无意义的名称替换原有的资源名称,使其难以被理解和识别。
重命名可以通过编写自定义的工具脚本或使用混淆工具来实现。
3. 混淆字符串:resources.arsc文件中包含了应用程序中的字符串资源,可以对这些字符串进行混淆,使用无意义或随机的字符串替换原有的字符串,使其难以被反编译和分析。
4. 压缩:可以对resources.arsc文件进行压缩,压缩后的文件体积较小,难以被解析和理解。
压缩可以使用常见的压缩算法,如ZIP或GZIP。
5. 混淆布局:resources.arsc文件中还包含了应用程序的布局文件,可以对这些布局文件进行混淆,使用无意义或随机的视图ID替换原有的视图ID,以及对视图的布局进行调整,使其难以被反编译和分析。
需要注意的是,对resources.arsc文件进行混淆可能会导致应用程序在运行时出现问题,因为Android系统需要正确解析这些资源信息来正确显示和操作应用程序的界面。
因此,在进行resources.arsc的混淆之前,需要进行充分的测试和验证,以确保应用程序的正常运行。
sources文件详解
在Windows CE中,所有的驱动程序都以dll形式存在。
Dll文件可以用EVC来开发,也可以使用PB来开发,使用PB开发驱动程序,可以跟NK同时进行编译,要比EVC来的方便一点。
这篇文章就只要介绍用PB来进行dll库开发的方法。
使用PB来开发,首先应该在你的工作平台下面建立一个目录,用来存放源文件,同时要修改dir文件,使得编译的时候能够进到源文件所在的目录。
编写dll的方法这里就不说了,反正就是写一堆的函数,这里主要解释一下使用PB编译,需要增加的文件。
第一个文件是sources文件,这里给出了一个sources文件的例子:
TARGETNAME=led
使用TARGETNAME来指示生成目标的文件名(不包含扩展名,扩展名PB会自动加上)
RELEASETYPE=PLATFORM
RELEASETYPE指示该文件将要生成的类型,一共有五个取值:
SDK:使用该类型将使得生成的目标文件被存储
到%_PUBLICROOT%\Oak目录,而lib文件被放置
到%_PUBLICROOT%\Sdk目录
DDK:使用该类型将使得生成的目标文件被存储
到%_PUBLICROOT%\Oak目录,而lib文件被放置
到%_PUBLICROOT%\Ddk
PLATFORM:使用该类型将使得生成的文件受平台控制LOCAL:该类型使得生成的文件全部放置到当前路径CUSTOM:该类型使得生成的文件放置到TARGETPATH 制定的位置(也就是说必须要有TARGETPATH参数设置)TARGETTYPE=DYNLINK
生成的目标类型,LIBRARY表示是一个lib库,DYNLINK 则表示是dll,而PROGRAM则是一个exe文件TARGETLIBS=
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib TARGETLIBS指示连接需要的库的名字
SOURCELIBS=mm.lib
SOURCELIBS指示将于某一个lib一起连接。
上面一个lib 是需要什么就取什么,而这个lib则是连接所有的。
DEFFILE=led.def
DLL文件的def文件名
INCLUDES=..\..\inc
指定include的路径
SOURCES=
led.c
指定参与该规则的所有的源文件
第二个则使makefile文件,该文件只需要!INCLUDE $(_MAKEENVROOT)\makefile.def就可以了,建议不要修改(我也不知道如何修改)
第三个文件是def文件,下面是一个该文件的实例LIBRARY led
生成的库(.lib)文件名(PB自动生成扩展名)
EXPORTS
mm_init
EXPORTS指定了需要导出的函数名称
建立好这些文件之后,选择PB的build菜单的open build releasee directory,到达所在的目录,执行build -c,如果没有错误,就按照我们的要求生成文件了SOURCES文件详解SOURCES文件是WINCE底层开发中最重要的文件之一,主要的配置项如下:
TARGETNAME,定义模块名称.
TARGETTYPE,模块的种类,可以是DYNLINK, LIBRARY,EXE.
如果TARGETTYPE是DLL,则可以定义DLLENTRY,将Dll 入口定义成别的不是DLLMain的函数,如果DLL的入口是
DllMain,则不需要别的定义。
如果TARGETTYPE是EXE,则可以定义EXEENTRY,用于指定EXE的入口函数.
如果TARGETTYPE是LIBRARY,则不需要定义入口函数。
INCLUDES,如果一个模块需要使用非标准路径下的头文件时,需要定义INCLUDES,用于包含更多的头文件路径,用法
如下:INCLUDES=$(INCLUDES);\new directory\...,注意定
义新的INCLUDES时,需要包含INCLUDES原来的值,否则就需要包含所有可能的目录。
TARGETLIBS,SOURCELIBS 用于定义该模块需要链接哪些库文件.
TARGETLIBS,如果一个库以DLL的形式提供给调用者,就需要用TARGETLIBS,它只链接一个函数地址,系统执行时会将被链接的库加载。
比如coredll.lib就是这样的库文件。
即动态链接。
SOURCELIBS,将库中的函数实体链接进来。
即静态链接,用到的函数会在我们的文件中形成一份拷贝。
注意,内核这个执行文件是没有TARGETLIBS的,GIISR.DLL也不能有TARGETLIBS。
WINCECOD,如果将其定义为1,则编译器会为每一个文件生成.cod文件,它是一个汇编文件,调试时查看汇编代码也是一种很好的办法。
SOURCES,定义该模块需要哪些源文件.。