Javascript 通过Browserify和Babel 6让Vue与IE11协同工作

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中 这是包含所有构建

我很难让Vue站点在IE11中保持一致。我目前正尝试使用browserify将Babel文件传输到ES5,但似乎效果并不一致(它有时可以工作,但在不对JS文件进行任何更改(例如在行尾添加一个空格),然后重新编译后,它将突然不起作用)

我看到一些错误,例如:

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”,
。这将同时运行这些命令,而不是使用两个&&命令,这将在运行下一个命令之前等待上一个程序(在&&之前的右侧)结束。再次感谢-我更新了我的开发脚本以使用符号而不是管道。