Javascript NPM+Browserify错误:ParseError:“导入”和“导出”只能与“sourceType:module”一起出现
我有两个简单的js文件。其中一个应该是导出其内容的模块,该内容将由import命令包含 第一个testModule.js: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中,我
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
}
?