Javascript 通过Browserify和Babel 6让Vue与IE11协同工作
我很难让Vue站点在IE11中保持一致。我目前正尝试使用browserify将Babel文件传输到ES5,但似乎效果并不一致(它有时可以工作,但在不对JS文件进行任何更改(例如在行尾添加一个空格),然后重新编译后,它将突然不起作用) 我看到一些错误,例如:Javascript 通过Browserify和Babel 6让Vue与IE11协同工作,javascript,vuejs2,internet-explorer-11,babeljs,browserify,Javascript,Vuejs2,Internet Explorer 11,Babeljs,Browserify,我很难让Vue站点在IE11中保持一致。我目前正尝试使用browserify将Babel文件传输到ES5,但似乎效果并不一致(它有时可以工作,但在不对JS文件进行任何更改(例如在行尾添加一个空格),然后重新编译后,它将突然不起作用) 我看到一些错误,例如: SCRIPT1006: Expected ')' in _typed_array.js SCRIPT1002: Syntax error in _collection.js 所以我相信这意味着JS没有被正确地传输到ES5中 这是包含所有构建
SCRIPT1006: Expected ')' in _typed_array.js
SCRIPT1002: Syntax error in _collection.js
所以我相信这意味着JS没有被正确地传输到ES5中
这是包含所有构建脚本的my package.json副本:
{
"private": true,
"scripts": {
"watch-js": "watchify -vd -p browserify-hmr -e rest-theme/src/main.js -o rest-theme/dist/build.js",
"watch-scss": "./node_modules/.bin/node-sass -w --output-style=compressed scss/style.scss rest-theme/dist/build.css",
"dev": "npm run watch-scss | npm run watch-js",
"build": "cross-env NODE_ENV=production browserify rest-theme/src/main.js | uglifyjs -c warnings=false -m > rest-theme/dist/build.js"
},
"dependencies": {
"babel-polyfill": "^6.23.0",
"babel-runtime": "^6.9.2",
"mixitup": "^3.2.1",
"vue": "^2.1.1",
"vue-moment": "^2.0.1",
"vue-resource": "^1.0.0",
"vue-router": "^2.1.0",
"vue-smooth-scroll": "^1.0.13",
"viewport-units-buggyfill": "^0.6.0",
"vivus": "^0.4.1"
},
"devDependencies": {
"babel-core": "^6.0.0",
"babel-plugin-transform-runtime": "^6.9.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-stage-2": "^6.0.0",
"babel-runtime": "^5.8.0",
"babelify": "^7.3.0",
"browserify": "^13.1.1",
"browserify-hmr": "^0.3.5",
"cross-env": "^1.0.6",
"node-sass": "^3.0.0",
"uglify-js": "^2.5.0",
"vue-hot-reload-api": "^2.0.6",
"vueify": "^9.3.0",
"vueify-insert-css": "^1.0.0",
"vue-migration-helper": "^1.1.1",
"watchify": "^3.7.0"
},
"browserify": {
"transform": [
"vueify",
["babelify", { "presets": ["es2015"] }]
]
},
"browser": {
"vue": "./node_modules/vue/dist/vue.common"
}
}
没有什么东西会真正冲着我跳出来解释为什么它编译不正确;但是,也许我的语法中有错误的地方,或者某个旧版本的东西有时会导致构建失败
我还将babel polyfill包含在我的主JS文件的第一行:
import "babel-polyfill";
import VueRouter from 'vue-router';
import VueResource from 'vue-resource';
.....
但这可能是错误的实现吗
让我知道,如果我可以提供更多的信息,或额外的脚本片段,以帮助阐明任何事情 旁注:对于您的
watch scss
脚本,您不必包含二进制文件的完整路径,npm在进入系统级之前会首先查找这些路径。这意味着,对于该脚本,您可以将其缩短为:node sass-w--output style=compressed…
类似于您已经拥有的cross-env
和watchify
感谢您的提示!更新了节点sass,因为您的开发脚本中有管道,这很奇怪,因为命令之间没有任何管道输入,请尝试将其更改为“dev”:“npm run watch scs&npm run watch js”,
。这将同时运行这些命令,而不是使用两个&&来等待上一个程序(在&&之前的右侧)结束,然后再运行下一个命令。再次感谢-我更新了我的开发脚本,以使用符号而不是管道。侧注:对于您的监视SCS
脚本,您不必包含二进制文件的完整路径,npm在进入系统级之前会首先查找这些文件。这意味着,对于该脚本,您可以将其缩短为:node sass-w--output style=compressed…
类似于您已经拥有的cross-env
和watchify
感谢您的提示!更新了节点sass,因为您的开发脚本中有管道,这很奇怪,因为命令之间没有任何管道输入,请尝试将其更改为“dev”:“npm run watch scs&npm run watch js”,
。这将同时运行这些命令,而不是使用两个&&命令,这将在运行下一个命令之前等待上一个程序(在&&之前的右侧)结束。再次感谢-我更新了我的开发脚本以使用符号而不是管道。