JS編譯後
『壹』 編譯構建好的reactjs程序可以打斷點調試嗎
你好,1,通過npm安裝react-toolsnpm –g react-tools2,通過cmd進入項目根目錄執行watch命令 jsx --watch src/ build/src路徑下存放的是jsx文件,編譯後的js存放到build路徑下3,當目標文件變化以後,自動構建生成新的js文件。
『貳』 js文件怎麼運行
1、瀏覽器控制台運行
javaScript不同於java語言或者c語言,需要環境、需要編譯再運行,js在被製造出來時,就是為瀏覽器而生,可以直接在瀏覽器里運行,這里以谷歌瀏覽器為例,滑鼠右鍵檢查或者快捷鍵F12即可看到控制台可以理解為操作系統里的命令行模式
看上去是好一點了,可以單獨執行文件了,但是這樣還是很蠢,每回打開cmd還要找到js的路徑
3、插件(我這里用的IDEA)
『叄』 vue編譯後的js和map文件修改不了嗎
無法還原,編譯後的js為壓縮文件,很多代碼都不存在了
『肆』 javascript可以編譯成可執行文件直接運行嗎還是只能嵌入html中使用
JavaScript 依賴於瀏覽器的運行環境。是一種解釋執行的腳本語言。所以,只能以文本的形式被解釋執行,不能被編譯。有些運行形式,比如.js .hta 的執行方式看似一個獨立的應用程序。其實後台也是解釋執行的。
『伍』 如何把.js文件編譯成dll供頁面調用
其實js本來就是前台腳本,把js文件編譯成dll供頁面調用也可以實行
方法:
1.在解決方案中添加一個新項目(類庫:JSControl)
2.在新項目中添加要用的JS腳本(JScript1.js)
腳本的內容:
function testAlert() {
alert("Hello!");
}
3. 改變JScript1.js的屬性,Build Action為Embedded Resource(嵌入的資源)
4.在JSControl項目的AssemblyInfo.cs文件添加一行:(注意
JSControl.JScript1.js,JSControl是js所在項目的命名空間)
//定義組件內的內嵌資源的元數據屬性
[assembly: System.Web.UI.WebResource("JSControl.JScript1.js", "application/x-javascript")]
注意:這邊要增加個引用:System.Web.dll
5. 項目中增加一個注冊客戶端腳本的類:
『陸』 怎麼在本地運行經過tsc編譯過後的js文件
你可以放到HTML文件里用瀏覽器打開,或者用node運行都可以。
『柒』 JS到底是逐行解釋,還是總體編譯之後,再執行的
要根據實際情況考慮,默認是逐行解釋,但是假如有window.onload,則是先總體編譯在執行,還有很多情況,這只是最常見的2種情況
『捌』 求助如何知道js編譯後的內容是什麼
這個估計挺不容易的 除非你能找到他編譯的工具,然後對應的進行反編譯,要不然的話 應該看不到
『玖』 require方法在js編譯後被注釋
RequireJS Optimizer 對腳本的優化支持目前流行的UglifyJS 和 Closure Compiler 兩種壓縮方式,UglifyJS 需要 NodeJS 環境支持,而Closure Compiler 則需要 Java 環境。這篇文章是以運行於 NodeJS 的 UglifyJS 來優化的,這也是RequireJS Optimizer 默認的壓縮方法。
首先需要安裝Node 0.4.0,然後下載r.js,下載好以後就可以在命令行里對前端代碼進行優化了。r.js的參數傳遞使用方式,一是直接加在命令行後面,如下:
node r.js -o baseUrl=. paths.jquery=some/other/jquery name=main out=main-built.js
二是新建一個配置文件,例如 build.js(推薦使用這種方式),這樣配置更方便,如下:
node r.js -o build.js
build.js 的配置代碼如下:
{ baseUrl: "../js", dir: "../dist", optimize: "uglify", optimizeCss: "standard.keepLines", mainConfigFile: "../js/main.js", removeCombined: true, fileExclusionRegExp: /^./, moles: [
{ name: "app/dispatcher",
},
{ name: "app/in-storage", exclude: [ "jquery", "app/common", "pkg/DatePicker/app"
]
}
]
}
基本參數介紹
appDir
應用程序的最頂層目錄。可選的,如果設置了的話,r.js會認為腳本在這個路徑的子目錄中,應用程序的文件都會被拷貝到輸出目錄(dir 定義的路徑)。如果不設置,則使用下面的 baseUrl 路徑。
baseUrl
dir
輸出目錄的路徑。如果不設置,則默認為和 build 文件同級的 build 目錄。
optimize
JavaScript 代碼優化方式。可設置的值:
- "uglify:使用UglifyJS 壓縮代碼,默認值;- "uglify2":使用2.1.2+ 版本進行壓縮;- "closure": 使用Google's Closure Compiler 進行壓縮合並,需要 Java 環境;- "closure.keepLines":使用Closure Compiler 進行壓縮合並並保留換行;- "none":不做壓縮合並;optimizeCss
CSS 代碼優化方式,可選的值有:
- "standard":標準的壓縮方式;
- "standard.keepLines":保留換行;
- "standard.keepComments":保留注釋;
- "standard.keepComments.keepLines":保留換行;
- "none":不壓縮;mainConfigFile
如果不想重復定義的話,可以使用這個參數配置 RequireJS 的配置文件路徑。
removeCombined
刪除之前壓縮合並的文件,默認值 false。
fileExclusionRegExp
要排除的文件的正則匹配的表達式。
moles
定義要被優化的模塊數組。每一項是模塊優化的配置,常用的幾個參數如下:
- `name:`模塊名;- `include:`額外引入的模塊,`create:`如果不存在,是否創建。默認`false`;- `exclude:`要排除的模塊。有些模塊有公共的依賴模塊,在合並的時候每個都會壓縮進去,例如一些基礎庫。使用 exclude 就可以把這些模塊在壓縮在一個更早之前載入的模塊中,其它模塊不用重復引入。- { baseUrl: "../js", dir: "../dist", optimize: "uglify", optimizeCss: "standard.keepLines", removeCombined: true, fileExclusionRegExp: /^./, moles: [
- { name: "app/dispatcher",
- },
- { name: "app/in-storage", exclude: [ "jquery", "app/common", "pkg/DatePicker/app"
- ]
- }
- ], paths: { jquery: 'lib/jquery', underscore: 'lib/underscore', backbone: 'lib/backbone/backbone', backboneLocalstorage: 'lib/backbone/backbone.localStorage', text: 'lib/require/text'
- }, shim: { underscore: { exports: '_'
- }, backbone: { deps: [ 'underscore', 'jquery'
- ], exports: 'Backbone'
- }, backboneLocalstorage: { deps: ['backbone'], exports: 'Store'
- }
- }
- }
- @echo off
- echo build...
- e:
- cd E:SCMSRCscm-html ew-scm-html ools
- node r.js -o build.js
- echo Press any key to exit!
- echo. & pause
- var mods = someCondition ? ['a', 'b'] : ['c', 'd'];require(mods);
- require(['a', 'b']);
- define(['a', 'b'], function (a, b) {});
- (function () { //almond will be here
- //main and its nested dependencies will be here}());
所有的模塊編譯為一個文件,沒有動態的載入;
所有的模塊都需要在 define() 定義 ID 和依賴,這個RequireJS Optimizer 會處理;
只能有一個requirejs.config() 或者 require.config() 調用;
不能使用 Require JS 多版本功能;
不能使用require.toUrl() 或者 require.nameToUrl();
不能使用packages/packagePaths 配置。
默認情況下,所有的模塊都是相對於這個路徑的。如果沒有設置,則模塊的載入是相對於 build 文件所在的目錄。另外,如果設置了appDir,那麼 baseUrl 應該定義為相對於 appDir 的路徑。
其它事項
RequireJS 配置也可以放到 RequireJS Optimizer配置文件裡面,例如:
RequireJS Optimizer 的配置參數還有很多,完整的參數介紹可以看這里:
example.build.js
為方便運行,可以新建一個批處理文件:
注意事項:RequireJS Optimizer 只支持使用 require 和 define 語法定義的模塊,因此下面這種通過變數定義的方式是不支持的:
而如果是這樣定義則可以:
或者:
進一步優化
使用 r.js 優化後的代碼可以使用almond來載入。almond 是一個輕量的 AMD 載入器,提供了最基礎的 AMD API 實現以及模塊載入功能。almond 只有不到 400 行代碼,要比 RequireJS 小很多。可以使用 r.js 把 almond 一起合並到業務代碼的前面,如下:
almond 特別適合使用 AMD 的網站或應用,但也有一些限制:
如果你的項目中沒有這些問題的話,可以放心使用 almond 進行載入。
『拾』 javascript 程序編輯後總是顯示語法錯誤
語法錯誤不是ie的問題,是你自己代碼的問題,仔細檢查下
根據我個人經驗,這些基本上都是初學者敲代碼時出錯了,貼代碼,不然幫不了你