Javascript NPM+Browserify错误:ParseError:“导入”和“导出”只能与“sourceType:module”一起出现

Javascript NPM+Browserify错误:ParseError:“导入”和“导出”只能与“sourceType:module”一起出现,javascript,import,module,export,Javascript,Import,Module,Export,我有两个简单的js文件。其中一个应该是导出其内容的模块,该内容将由import命令包含 第一个testModule.js: export function test() { console.log('teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest'); } 和main.js: import * as test from "../src/js/testModule.js" test.test(); 在package.json中,我

我有两个简单的js文件。其中一个应该是导出其内容的模块,该内容将由import命令包含

第一个testModule.js:

export function test() {
    console.log('teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest');
}
和main.js:

import * as test from "../src/js/testModule.js"

test.test();
在package.json中,我有两个脚本命令。首先将es6转换为es5,然后根据模块浏览es5结果。第一个有效。但是第二次给了我一个错误

{
    "name": "examples-vue",
    "main": "index.js",
    "dependencies": {
        "bootstrap": "^3.4.1",
        "jquery": "^3.4.1",
        "vue": "^2.6.11"
    },
    "devDependencies": {
        "@babel/cli": "^7.10.4",
        "@babel/core": "^7.10.4",
        "@babel/polyfill": "^7.10.4",
        "@babel/preset-env": "^7.10.4",
        "browserify": "^16.5.1",
        "core-js": "^3.6.5"
    },
    "scripts": {
        "es5": "babel ./src/js/main.js -o ./js/main.es5.js",
        "browserify": "browserify ./js/main.es5.js -o ./js/bundle.js",
        "build": "npm run es5 && npm run browserify"
    }
}
第一个命令的结果如下:

"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

var test = _interopRequireWildcard(require("../src/js/testModule.js"));

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

test.test();
第二个命令抛出一个错误:ParseError:“import”和“export”只能与“sourceType:module”一起出现


在其他问题上仍然是相同的答案。Browserify不适用于es6语法。但它可以使用es5文件。这个代码有什么问题?非常感谢您的帮助。

因此Browserify的有效语法是

进口

import * as testModule from "./testModule.js";
import { test2module } from "./testModule2.js";
出口

module.exports.test = test;
module.exports.xxx = xxx;
export var test2module = {
    test2: test2,
    aaa: aaa
}
还是出口

module.exports.test = test;
module.exports.xxx = xxx;
export var test2module = {
    test2: test2,
    aaa: aaa
}
?