Javascript 在浏览器中动态加载Web包公共块(使用requirejs)
我正在尝试创建一个带有一些“供应商”依赖项(React、lodash等)的Webpack包,并在我的web应用程序中使用它们 我的问题是,我不想将我的vendor.js文件作为Javascript 在浏览器中动态加载Web包公共块(使用requirejs),javascript,webpack,Javascript,Webpack,我正在尝试创建一个带有一些“供应商”依赖项(React、lodash等)的Webpack包,并在我的web应用程序中使用它们 我的问题是,我不想将我的vendor.js文件作为标记添加到我的页面,而是需要或以某种方式导入它 我试着使用requirejs,但是一个错误不断出现 webpackjsonp未定义 现在,据我所知,webpackJsonp是由CommonChunkPlugin定义的,它不允许加载带有async属性的脚本 我的问题:如何仅在需要依赖项(vendors.js、commons.
标记添加到我的页面,而是需要或以某种方式导入它
我试着使用requirejs,但是一个错误不断出现
webpackjsonp未定义
现在,据我所知,webpackJsonp是由CommonChunkPlugin定义的,它不允许加载带有async
属性的脚本
我的问题:如何仅在需要依赖项(vendors.js、commons.js等)时动态加载它们,同时仍使用webpack
更多信息:我使用Typescript进行开发,它使用commonjs配置加载模块(例如:import{clone}from“lodash/clone”
)
提前感谢。您可以使用webpack内置-require。确保或导入()
您可以使用webpack内置-require。确保或导入()
您使用es6导入。commonjs语法是requireYes,但我在Typescript中使用es6导入。如果我是对的,编译后会转换为es5。您可以使用es6导入。commonjs语法是requireYes,但我在Typescript中使用es6导入。如果我是对的,编译后会转换为es5。这意味着我必须更改(typescript)源代码,对吗?@Nsevens是的。您应该在源代码中使用动态导入。我正在寻找一种方法,例如在我的html中使用require([“app”],function(app){…})
,然后根据需要加载vendors.js。因为你会在requirejs中使用shim等,但这给了我webpackJsonp是未定义的问题这意味着我必须更改我的(typescript)源代码,对吗?@Nsevens是的。您应该在源代码中使用动态导入。我正在寻找一种方法,例如在我的html中使用require([“app”],function(app){…})
,然后根据需要加载vendors.js。然而,正如您在requirejs中使用shim等一样,这给了我webpackJsonp是未定义的问题