是否使用es6样式导入而不进行传输来导入npm模块?

是否使用es6样式导入而不进行传输来导入npm模块?,npm,import,ecmascript-6,module,Npm,Import,Ecmascript 6,Module,我想从我的代码中调用一个npm模块,它是es6模块。有没有一种方法可以做到这一点而不需要传输或捆绑我的代码?我不想传输的原因是为了简单,所以我可以在调试时立即在浏览器中看到我的代码更改 您可以使用脚本type=“module”在浏览器中使用本机ESM模块。它只起作用 index.html <html> <head></head> <body> <script type="module" src="my-script.js"

我想从我的代码中调用一个npm模块,它是es6模块。有没有一种方法可以做到这一点而不需要传输或捆绑我的代码?我不想传输的原因是为了简单,所以我可以在调试时立即在浏览器中看到我的代码更改

您可以使用
脚本type=“module”
在浏览器中使用本机ESM模块。它只起作用

index.html

<html>
  <head></head>
  <body>
      <script type="module" src="my-script.js"></script>
  </body>
</html>
module1.js

import {stuff} from './module1.js';
import Stuff from './module2.js';

console.log(Stuff);
console.log(stuff);
export const stuff = {b: 1};
export default {a: 1};
module2.js

import {stuff} from './module1.js';
import Stuff from './module2.js';

console.log(Stuff);
console.log(stuff);
export const stuff = {b: 1};
export default {a: 1};
然后设置快速web服务器以查看页面是否正常工作:

python-msimplehttpserver 7654


也就是说,如果您的问题是每次更改时都要刷新代码并在ES6开发模式下进行调试,那么我推荐
sourceMaps
作为解决方案。使用
sourceMaps
在ES6中调试开发版本时,您可以看到您的代码在生产环境中被编译(或随意“传输”)。Webpack(或备选方案)目前非常优化,可以在每次保存时重新加载浏览器进行部分编译。

True,但是我要问的是如何将npm模块导入我的javascript es6模块,这更困难,因为npm使用commonjs样式的模块。好吧,我没有找到解决方案,因此,我仔细阅读了代码,发现了一个可行的方法:我使用的nmp模块是html2canvas。在捆绑的网页包文件的顶部,我添加了
export-let-html2canvas={}root[“html2canvas”]=factory()
html2canvas=factory()
然后我可以将html2canvas导入我的es6模块<代码>从‘/node_modules/html2canvas/dist/html2canvas.js’导入{html2canvas}似乎接近您想要的,但不是完全匹配的。