问题描述
我在学习js中的库的时候,有一段代码
//20190722.js
import qs from 'qs'
const url="age=12&&name='haha'&&depart='IT'";
console.log(qs.parse(url)); //{age:12,name:'haha',depart:'IT'}
const aaa={id:1,address:'Beijing'};
console.log(qs.stringify(aaa)); //id=1&address='Beijing'
安装了了code runner插件之后,运行出现错误:
解决方法
方法1:用require引入,即将import语句替换掉,如下:
var qs = require('qs');
结果如下:
方法2:--experimental-modules特性
原来,是因为node12不是默认支持import语法的,所以用import不能识别。
我用的是--experimental-modules特性,使用之前要将.js文件的后缀改成.mjs,同时引用的时候也要改成.mjs,如:
import module1 from './module1.mjs'
运行时,指定参数:
node --experimental-modules ./20190722.mjs
运行结果如下:
方法3:用 babel 引导
首先安装 babel 包:
npm install babel-register babel-preset-env --D
然后编写一个新的 js 文件作为程序的执行入口,用下面的方法加载要运行的模块:
require('babel-register') ({
presets: [ 'env' ]
})
module.exports = require('./app.js')
运行:
node ./start.js
这个方法我觉得太麻烦了,暂时还没有具体实践。
如有不足之处,欢迎大家指正,谢谢!